Function at 0x418d00
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 0x418f8b
cmp eax, 0x7c
je 0x418f8b
cmp eax, 0x29
jne 0x418d45
cmp dword [esi + 0x10], 0
jne 0x418f8b
cmp eax, eax
jne 0x418d45
test dword [esi + 0x50], 0x10000000
je 0x418f9b
jmp 0x418f44
cmp eax, 0x2e
jne 0x418d59
push 5
lea ecx, [esi + 0x24]
call fcn.00419000
jmp 0x418e81
cmp eax, 0x5c
jne 0x418dd9
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x418d7f
mov ebx, edi
cmp word [edi], ax
jne 0x418d7a
mov ecx, esi
call fcn.00418c90
test al, al
je 0x418d7a
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.00417ea0
test byte [esi + 0x50], 0x80
je 0x418dcd
movzx eax, word [esi + 0x48]
cmp eax, 0x62
jne 0x418dab
push 4
lea ecx, [esi + 0x24]
call fcn.00419000
mov ecx, esi
call fcn.00418cd0
jmp 0x418f7d
cmp eax, 0x42
jne 0x418dcd
push 4
lea ecx, [esi + 0x24]
call fcn.00419000
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00418cd0
jmp 0x418f7d
mov ecx, esi
call fcn.00419d90
jmp 0x418f76
cmp eax, 0x5b
jne 0x418eaf
mov ecx, esi
call fcn.00418cd0
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.0041b580
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x418e31
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x418e27
cmp word [edi], 0x5c
mov ebx, edi
jne 0x418e1f
mov ecx, esi
call fcn.00418c90
test al, al
je 0x418e1f
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
lea ebx, [esi + 0x24]
mov ecx, esi
call fcn.00417ea0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x418e70
cmp eax, 0x5d
jne 0x418e70
push eax
mov ecx, ebx
call fcn.0041b620
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x418e69
cmp word [edi], 0x5c
mov ebx, edi
jne 0x418e64
mov ecx, esi
call fcn.00418c90
test al, al
je 0x418e64
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.00417ea0
mov ecx, esi
call fcn.0041b0f0
cmp dword [esi + 0x4c], 0x5d
jne 0x418fa9
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x418ea3
cmp word [edi], 0x5c
mov ebx, edi
jne 0x418e9e
mov ecx, esi
call fcn.00418c90
test al, al
je 0x418e9e
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.00417ea0
jmp 0x418f76
cmp eax, 0x28
jne 0x418f00
mov ecx, esi
call fcn.00418cd0
mov ecx, esi
call fcn.00419ee0
cmp dword [esi + 0x4c], 0x29
mov byte [ebp - 1], al
jne 0x418f9b
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x418ef1
cmp word [edi], 0x5c
mov ebx, edi
jne 0x418eec
mov ecx, esi
call fcn.00418c90
test al, al
je 0x418eec
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.00417ea0
cmp byte [ebp - 1], 0
je 0x418f7d
jmp 0x418f76
cmp eax, 0x5e
jne 0x418f18
push 2
lea ecx, [esi + 0x24]
call fcn.00419000
mov ecx, esi
call fcn.00418cd0
jmp 0x418f7d
cmp eax, 0x24
jne 0x418f30
push 3
lea ecx, [esi + 0x24]
call fcn.00419000
mov ecx, esi
call fcn.00418cd0
jmp 0x418f7d
cmp eax, 0x2a
je 0x418f94
cmp eax, 0x2b
je 0x418f94
cmp eax, 0x3f
je 0x418f94
cmp eax, 0x7b
je 0x418f94
cmp eax, 0x7d
jne 0x418f54
test dword [esi + 0x50], 0x10000000
je 0x418fa2
jmp 0x418f62
cmp eax, 0x5d
jne 0x418f62
test dword [esi + 0x50], 0x10000000
je 0x418fa9
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0041a1a0
mov ecx, esi
call fcn.00418cd0
mov ecx, esi
call fcn.0041a050
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x418d17
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00417e90
push 5
call fcn.00417e90
push 6
call fcn.00417e90
push 4
call fcn.00417e90
int3