Function at 0x44e802
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
and dword [ebp - 0x2c], 0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x54], eax
push dword [ebp + 0xc]
call fcn.00457d9f
pop ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
and eax, 0x40
jne 0x44e83b
cmp dword [0x4b04a4], 0
je 0x44ed82
cmp dword [ebp - 0x20], 5
jl 0x44ed82
push 5
push 0x4b57d4
push dword [ebp + 0xc]
call fcn.004826cb
add esp, 0xc
test eax, eax
jne 0x44ed82
and dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x20]
inc eax
inc eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x18]
or eax, 0x40
mov dword [ebp - 0x18], eax
and dword [ebp - 8], 0
jmp 0x44e881
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x20]
jge 0x44e8af
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movsx eax, byte [eax]
cmp eax, 0x26
jne 0x44e8a0
mov dword [ebp - 0x58], 1
jmp 0x44e8a4
and dword [ebp - 0x58], 0
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x58]
mov dword [ebp - 0x48], eax
jmp 0x44e87a
push dword [ebp - 0x48]
call fcn.0040d47c
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x44e8c9
push 7
pop eax
jmp 0x44ee23
mov dword [ebp - 8], 5
xor eax, eax
inc eax
imul eax, eax, 5
mov ecx, dword [ebp + 0xc]
movsx eax, byte [ecx + eax]
cmp eax, 0x2f
jne 0x44e97f
xor eax, eax
inc eax
imul eax, eax, 6
mov ecx, dword [ebp + 0xc]
movsx eax, byte [ecx + eax]
cmp eax, 0x2f
jne 0x44e97f
mov dword [ebp - 8], 7
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movsx eax, byte [eax]
test eax, eax
je 0x44e927
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movsx eax, byte [eax]
cmp eax, 0x2f
je 0x44e927
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
jmp 0x44e903
cmp dword [ebp - 8], 7
je 0x44e97f
cmp dword [ebp - 8], 0x10
jne 0x44e950
push 9
xor eax, eax
inc eax
imul eax, eax, 7
add eax, dword [ebp + 0xc]
push eax
push 0x4b56cc
call fcn.004826cb
add esp, 0xc
test eax, eax
je 0x44e97f
xor eax, eax
inc eax
imul eax, eax, 7
add eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 8]
sub eax, 7
push eax
push 0x4b5774
call fcn.0040d36f
add esp, 0xc
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
mov dword [ebp - 0x2c], 1
jmp 0x44edfd
and dword [ebp - 0x14], 0
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
mov al, byte [eax]
mov byte [ebp - 1], al
movsx eax, byte [ebp - 1]
test eax, eax
je 0x44eb73
movsx eax, byte [ebp - 1]
cmp eax, 0x23
je 0x44eb73
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
movsx eax, byte [ebp - 1]
cmp eax, 0x25
jne 0x44eaa9
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movzx eax, byte [eax]
movzx eax, byte [eax + 0x4a2c20]
and eax, 8
je 0x44eaa9
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movzx eax, byte [eax + 1]
movzx eax, byte [eax + 0x4a2c20]
and eax, 8
je 0x44eaa9
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movsx eax, byte [eax]
mov dword [ebp - 0x60], eax
push dword [ebp - 0x60]
call fcn.0044857a
pop ecx
movzx eax, al
shl eax, 4
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movsx eax, byte [eax]
mov dword [ebp - 0x64], eax
push dword [ebp - 0x64]
call fcn.0044857a
pop ecx
movzx eax, al
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp dword [ebp - 0x38], 0
jne 0x44ea9e
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
mov al, byte [eax]
mov byte [ebp - 1], al
movsx eax, byte [ebp - 1]
test eax, eax
je 0x44ea99
movsx eax, byte [ebp - 1]
cmp eax, 0x23
je 0x44ea99
cmp dword [ebp - 0x14], 0
jne 0x44ea69
movsx eax, byte [ebp - 1]
cmp eax, 0x3f
je 0x44ea99
cmp dword [ebp - 0x14], 1
jne 0x44ea81
movsx eax, byte [ebp - 1]
cmp eax, 0x3d
je 0x44ea99
movsx eax, byte [ebp - 1]
cmp eax, 0x26
je 0x44ea99
cmp dword [ebp - 0x14], 2
jne 0x44ea90
movsx eax, byte [ebp - 1]
cmp eax, 0x26
je 0x44ea99
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
jmp 0x44ea3e
jmp 0x44e983
mov al, byte [ebp - 0x38]
mov byte [ebp - 1], al
jmp 0x44eb5c
cmp dword [ebp - 0x14], 1
jne 0x44eb33
movsx eax, byte [ebp - 1]
cmp eax, 0x26
je 0x44eac5
movsx eax, byte [ebp - 1]
cmp eax, 0x3d
jne 0x44eb33
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
movsx eax, byte [eax - 1]
test eax, eax
jne 0x44eb0b
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movsx eax, byte [eax]
test eax, eax
je 0x44eb06
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movsx eax, byte [eax]
cmp eax, 0x23
je 0x44eb06
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
movsx eax, byte [eax - 1]
cmp eax, 0x26
je 0x44eb06
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
jmp 0x44ead3
jmp 0x44e983
movsx eax, byte [ebp - 1]
cmp eax, 0x26
jne 0x44eb26
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
mov byte [eax], 0
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
jmp 0x44eb2d
mov dword [ebp - 0x14], 2
mov byte [ebp - 1], 0
jmp 0x44eb5c
cmp dword [ebp - 0x14], 0
jne 0x44eb42
movsx eax, byte [ebp - 1]
cmp eax, 0x3f
je 0x44eb51
cmp dword [ebp - 0x14], 2
jne 0x44eb5c
movsx eax, byte [ebp - 1]
cmp eax, 0x26
jne 0x44eb5c
mov byte [ebp - 1], 0
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
mov cl, byte [ebp - 1]
mov byte [eax], cl
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
jmp 0x44e983
cmp dword [ebp - 0x14], 1
jne 0x44eb89
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
mov byte [eax], 0
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
mov byte [eax], 0
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
mov byte [eax], 0
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
push dword [ebp - 0xc]
call fcn.00457d9f
pop ecx
mov ecx, dword [ebp - 0xc]
lea eax, [ecx + eax + 1]
mov dword [ebp - 0x1c], eax
xor eax, eax
inc eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x1c]
movsx eax, byte [ecx + eax]
test eax, eax
je 0x44ed80
push dword [ebp - 0x1c]
call fcn.00457d9f
pop ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx + eax + 1]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x28]
call fcn.00457d9f
pop ecx
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x3c], 3
jne 0x44ec1d
push 3
push dword [ebp - 0x1c]
push 0x4b57dc
call fcn.004826cb
add esp, 0xc
test eax, eax
jne 0x44ec1d
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x54], eax
jmp 0x44ed6e
and dword [ebp - 0x24], 0
and dword [ebp - 0x40], 0
and dword [ebp - 0x34], 0
and dword [ebp - 0x4c], 0
cmp dword [ebp - 0x3c], 5
jne 0x44ec64
push 5
push dword [ebp - 0x1c]
push 0x4b57e0
call fcn.004826cb
add esp, 0xc
test eax, eax
jne 0x44ec64
mov dword [ebp - 0x34], 0x60000
mov dword [ebp - 0x24], 0x4b56b4
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x40], 0x4b57e8
cmp dword [ebp - 0x3c], 4
jne 0x44ec9e
push 4
push dword [ebp - 0x1c]
push 0x4b57f0
call fcn.004826cb
add esp, 0xc
test eax, eax
jne 0x44ec9e
mov dword [ebp - 0x34], 0x87
mov dword [ebp - 0x24], 0x4b574c
mov eax, dword [ebp - 0x34]
and eax, dword [ebp - 0x18]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x40], 0x4b57f8
cmp dword [ebp - 0x24], 0
je 0x44ed6e
and dword [ebp - 0x44], 0
and dword [ebp - 0x30], 0
jmp 0x44ecb9
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + eax*8], 0
je 0x44ed05
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + eax*8]
mov dword [ebp - 0x5c], eax
push dword [ebp - 0x5c]
call fcn.00457d9f
pop ecx
cmp dword [ebp - 0x50], eax
jne 0x44ed03
push dword [ebp - 0x50]
push dword [ebp - 0x5c]
push dword [ebp - 0x28]
call fcn.004826cb
add esp, 0xc
test eax, eax
jne 0x44ed03
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x44], eax
jmp 0x44ed05
jmp 0x44ecb2
cmp dword [ebp - 0x44], 0
jne 0x44ed2f
push dword [ebp - 0x28]
push dword [ebp - 0x40]
push 0x4b5800
call fcn.0040d36f
add esp, 0xc
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
mov dword [ebp - 0x2c], 1
jmp 0x44edfd
mov eax, dword [ebp - 0x44]
and eax, 0xffffff7f
cmp eax, dword [ebp - 0x4c]
jle 0x44ed60
push dword [ebp - 0x28]
push dword [ebp - 0x40]
push 0x4b5814
call fcn.0040d36f
add esp, 0xc
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
mov dword [ebp - 0x2c], 3
jmp 0x44edfd
mov eax, dword [ebp - 0x34]
not eax
and eax, dword [ebp - 0x18]
or eax, dword [ebp - 0x44]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x28]
lea eax, [ecx + eax + 1]
mov dword [ebp - 0x1c], eax
jmp 0x44ebbc
jmp 0x44edcc
mov eax, dword [ebp - 0x20]
inc eax
inc eax
push eax
call fcn.0040d47c
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x44ed9f
push 7
pop eax
jmp 0x44ee23
push dword [ebp - 0x20]
push dword [ebp + 0xc]
push dword [ebp - 0xc]
call fcn.00483670
add esp, 0xc
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x20]
mov byte [eax], 0
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x20]
mov byte [eax + 1], 0
mov eax, dword [ebp - 0x18]
and eax, 0xffffffbf
mov dword [ebp - 0x18], eax
push dword [ebp - 0x54]
call fcn.004119cc
pop ecx
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x44edfd
push dword [ebp - 0x54]
push 0x4b582c
call fcn.0040d36f
pop ecx
pop ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
mov dword [ebp - 0x2c], 1
cmp dword [ebp - 0x2c], 0
je 0x44ee10
push dword [ebp - 0xc]
call fcn.0040d51d
pop ecx
and dword [ebp - 0xc], 0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 0x2c]
leave
ret