Function at 0x4af190
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x4af596
cmp eax, 0x7c
je 0x4af596
cmp eax, 0x29
jne 0x4af218
cmp dword [esi + 0x10], 0
jne 0x4af596
cmp eax, eax
jne 0x4af218
test dword [esi + 0x50], 0x10000000
je 0x4af5bb
cmp eax, 0x5d
jne 0x4af1e2
test dword [esi + 0x50], 0x10000000
je 0x4af5ad
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004b0d40
mov ecx, esi
call fcn.004af130
mov eax, dword [esi + 0x4c]
xor ebx, ebx
or edi, 0xffffffff
cmp eax, 0x2a
je 0x4af54d
cmp eax, 0x2b
jne 0x4af4d7
lea ebx, [edi + 2]
jmp 0x4af54d
cmp eax, 0x2e
jne 0x4af254
push 0x14
call fcn.005ab82c
add esp, 4
lea ecx, [esi + 0x24]
mov dword [eax], 0x731a34
push eax
mov dword [eax + 4], 5
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
call fcn.004af620
jmp 0x4af1ef
cmp eax, 0x5c
jne 0x4af413
mov ecx, esi
call fcn.004af130
mov ecx, dword [esi + 0x50]
mov eax, ecx
and eax, 0x80
je 0x4af2b7
cmp byte [esi + 0x48], 0x62
jne 0x4af2b7
push 0x14
call fcn.005ab82c
mov dword [eax + 4], 4
add esp, 4
mov dword [eax], 0x731a34
mov dword [eax + 8], 0
lea ecx, [esi + 0x24]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
push eax
call fcn.004af620
mov ecx, esi
call fcn.004af130
jmp 0x4af588
test eax, eax
je 0x4af309
cmp byte [esi + 0x48], 0x42
jne 0x4af309
push 0x14
call fcn.005ab82c
add esp, 4
lea ecx, [esi + 0x24]
mov dword [eax], 0x731a34
push eax
mov dword [eax + 4], 4
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
call fcn.004af620
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.004af130
jmp 0x4af588
test ecx, 0x100
je 0x4af3d3
push 3
push 0x7fffffff
push 0xa
mov ecx, esi
call fcn.004b3310
cmp eax, 0x7fffffff
je 0x4af3d3
mov ebx, dword [esi + 0x44]
mov dl, bl
mov eax, dword [esi + 0x50]
test ebx, ebx
jne 0x4af355
test eax, 0x100000
je 0x4af5a6
lea ecx, [esi + 0x24]
push edx
call fcn.004b0d40
jmp 0x4af1f6
test eax, 0x200
je 0x4af365
cmp ebx, 9
ja 0x4af5c2
cmp dword [esi + 0xc], ebx
jb 0x4af5c2
cmp dword [esi + 0x20], ebx
jbe 0x4af5c2
mov ecx, dword [esi + 0x14]
mov eax, ebx
shr eax, 5
lea edx, [ecx + eax*4]
mov ecx, ebx
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx], eax
je 0x4af5c2
push 0x18
call fcn.005ab82c
add esp, 4
lea ecx, [esi + 0x24]
mov dword [eax + 4], 0xf
push eax
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0x731928
mov dword [eax + 0x14], ebx
call fcn.004af620
jmp 0x4af1f6
mov ecx, esi
call fcn.004b22c0
test al, al
je 0x4af3f0
movzx eax, byte [esi + 0x44]
lea ecx, [esi + 0x24]
push eax
call fcn.004b0d40
jmp 0x4af1f6
test dword [esi + 0x50], 0x20000
je 0x4af5a6
push 1
mov ecx, esi
call fcn.004b2240
test al, al
je 0x4af5a6
jmp 0x4af1f6
cmp eax, 0x5b
jne 0x4af435
mov ecx, esi
call fcn.004af130
mov ecx, esi
call fcn.004b0ac0
cmp dword [esi + 0x4c], 0x5d
jne 0x4af5ad
jmp 0x4af1ef
cmp eax, 0x28
jne 0x4af468
mov ecx, esi
call fcn.004af130
mov ecx, esi
call fcn.004b0bf0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4af5bb
mov ecx, esi
call fcn.004af130
test bl, bl
je 0x4af588
jmp 0x4af1f6
cmp eax, 0x5e
jne 0x4af480
push 0x14
call fcn.005ab82c
mov dword [eax + 4], 2
jmp 0x4af284
cmp eax, 0x24
jne 0x4af498
push 0x14
call fcn.005ab82c
mov dword [eax + 4], 3
jmp 0x4af284
cmp eax, 0x2a
je 0x4af59f
cmp eax, 0x2b
je 0x4af59f
cmp eax, 0x3f
je 0x4af59f
cmp eax, 0x7b
je 0x4af59f
cmp eax, 0x7d
jne 0x4af1d0
test dword [esi + 0x50], 0x10000000
je 0x4af5b4
jmp 0x4af1e2
cmp eax, 0x3f
jne 0x4af4e1
lea edi, [eax - 0x3e]
jmp 0x4af54d
cmp eax, 0x7b
jne 0x4af588
mov ecx, esi
call fcn.004af130
push 7
push 0x7fffffff
push 0xa
mov ecx, esi
call fcn.004b3310
cmp eax, 0x7fffffff
je 0x4af5c9
cmp dword [esi + 0x4c], 0x2c
mov ebx, dword [esi + 0x44]
je 0x4af519
mov edi, ebx
jmp 0x4af53a
mov ecx, esi
call fcn.004af130
cmp dword [esi + 0x4c], 0x7d
je 0x4af544
push 7
mov ecx, esi
call fcn.004b2220
test al, al
je 0x4af5c9
mov edi, dword [esi + 0x44]
cmp dword [esi + 0x4c], 0x7d
jne 0x4af5c9
cmp edi, 0xffffffff
je 0x4af54d
cmp edi, ebx
jl 0x4af5c9
mov eax, dword [esi + 0x28]
mov ecx, esi
or dword [eax + 8], 4
call fcn.004af130
test dword [esi + 0x50], 0x400
je 0x4af577
cmp dword [esi + 0x4c], 0x3f
jne 0x4af577
mov ecx, esi
mov byte [ebp - 4], 0
call fcn.004af130
jmp 0x4af57b
mov byte [ebp - 4], 1
push dword [ebp - 4]
lea ecx, [esi + 0x24]
push edi
push ebx
call fcn.004b26f0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x4af1a7
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.004adbd0
push 2
call fcn.004adbd0
push 4
call fcn.004adbd0
push 6
call fcn.004adbd0
push 5
call fcn.004adbd0
push 3
call fcn.004adbd0
push 7
call fcn.004adbd0
int3