Function at 0x4063d0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40689a
cmp eax, 0x7c
je 0x40689a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x406414
cmp dword [esi + 0x10], 0
jne 0x406898
test dword [esi + 0x50], 0x10000000
je 0x4068aa
jmp 0x406824
cmp eax, 0x2e
jne 0x406474
push 5
lea ecx, [esi + 0x24]
call fcn.00409020
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x406874
cmp word [eax], 0x5c
jne 0x40646a
lea edx, [eax + 2]
cmp edx, ecx
je 0x40646a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406453
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x406467
cmp edi, 0x29
je 0x406467
test bl, 0x10
jne 0x40646a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x406467
cmp edx, 0x7d
jne 0x40646a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x406874
cmp eax, 0x5c
jne 0x4065d7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4064cc
cmp word [eax], 0x5c
jne 0x4064c7
lea edx, [eax + 2]
cmp edx, ecx
je 0x4064c7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4064b0
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x4064c4
cmp word [ebp - 4], 0x29
je 0x4064c4
test bl, 0x10
jne 0x4064c7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x4064c4
cmp edx, 0x7d
jne 0x4064c7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409720
test byte [esi + 0x50], 0x80
je 0x4065cb
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x406549
push 4
lea ecx, [esi + 0x24]
call fcn.00409020
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40653d
cmp word [eax], 0x5c
jne 0x406538
lea edx, [eax + 2]
cmp edx, ecx
je 0x406538
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x406521
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x406535
cmp ebx, 0x29
je 0x406535
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x406538
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x406535
cmp edx, 0x7d
jne 0x406538
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409720
jmp 0x406885
cmp ecx, 0x42
jne 0x4065cb
push 4
lea ecx, [esi + 0x24]
call fcn.00409020
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x4065bf
cmp word [eax], 0x5c
jne 0x4065ba
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x4065b8
test byte [esi + 0x50], 8
jne 0x40658d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x4065a4
cmp ecx, 0x29
je 0x4065a4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4065b8
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x4065a4
mov edx, ecx
cmp ebx, 0x7d
jne 0x4065b8
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.00409720
jmp 0x406885
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409720
jmp 0x406885
mov ecx, esi
call fcn.004068d0
jmp 0x40687b
cmp eax, 0x5b
jne 0x4066e8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x406635
cmp word [eax], 0x5c
jne 0x40662d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x40662b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406610
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x406626
cmp ecx, 0x29
je 0x406626
mov ecx, eax
test bl, 0x10
jne 0x40662b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x406626
mov edx, ecx
cmp edi, 0x7d
jne 0x40662b
lea eax, [edx + 2]
jmp 0x40662d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.00409720
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.00405c00
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x4066b4
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4066aa
cmp word [eax], 0x5c
jne 0x4066a2
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x4066a0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406685
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x40669b
cmp ecx, 0x29
je 0x40669b
mov ecx, eax
test bl, 0x10
jne 0x4066a0
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x40669b
mov edx, ecx
cmp edi, 0x7d
jne 0x4066a0
lea eax, [edx + 2]
jmp 0x4066a2
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.00409720
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x4066d1
cmp eax, 0x5d
jne 0x4066d1
push eax
mov ecx, ebx
call fcn.00405b80
mov ecx, esi
call fcn.00409090
mov ecx, esi
call fcn.00407350
push 4
push 0x5d
mov ecx, esi
call fcn.004084e0
jmp 0x40687b
cmp eax, 0x28
jne 0x406766
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40673e
cmp word [eax], 0x5c
jne 0x406739
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x406737
test byte [esi + 0x50], 8
jne 0x40671b
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x406732
cmp ecx, 0x29
je 0x406732
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x406737
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x406732
mov edx, ecx
cmp ebx, 0x7d
jne 0x406737
lea eax, [edx + 2]
jmp 0x406739
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409720
mov ecx, esi
call fcn.00409930
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.004084e0
test bl, bl
je 0x406885
jmp 0x40687b
cmp eax, 0x5e
jne 0x40677a
push 2
lea ecx, [esi + 0x24]
call fcn.00409020
jmp 0x40655f
cmp eax, 0x24
jne 0x4067da
push 3
lea ecx, [esi + 0x24]
call fcn.00409020
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4067ce
cmp word [eax], 0x5c
jne 0x4067cb
add eax, 2
cmp eax, ecx
je 0x4067cb
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4067b6
movzx edx, word [eax]
cmp edx, 0x28
je 0x4067c8
cmp edx, 0x29
je 0x4067c8
test cl, 0x10
jne 0x4067cb
movzx eax, word [eax]
cmp eax, 0x7b
je 0x4067c8
cmp eax, 0x7d
jne 0x4067cb
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00409720
jmp 0x406885
cmp eax, 0x2a
je 0x4068a1
cmp eax, 0x2b
je 0x4068a1
cmp eax, 0x3f
je 0x4068a1
cmp eax, 0x7b
je 0x4068a1
cmp eax, 0x7d
jne 0x406812
test dword [esi + 0x50], 0x10000000
je 0x4068b3
jmp 0x406824
cmp eax, 0x5d
jne 0x406824
test dword [esi + 0x50], 0x10000000
je 0x4068bc
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004059b0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x406874
cmp word [eax], 0x5c
jne 0x406871
add eax, 2
cmp eax, ecx
je 0x406871
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40685c
movzx edx, word [eax]
cmp edx, 0x28
je 0x40686e
cmp edx, 0x29
je 0x40686e
test cl, 0x10
jne 0x406871
movzx eax, word [eax]
cmp eax, 0x7b
je 0x40686e
cmp eax, 0x7d
jne 0x406871
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00409720
mov ecx, esi
call fcn.004091c0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x406898
cmp eax, 0x7c
jne 0x4063f3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.004084d0
push 5
mov ecx, esi
call fcn.004084d0
push 6
mov ecx, esi
call fcn.004084d0
push 4
mov ecx, esi
call fcn.004084d0
int3