Function at 0x407640
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x407a40
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x407a40
cmp eax, 0x29
jne 0x407679
cmp dword [esi + 0x10], 0
jne 0x407a40
test dword [esi + 0x50], 0x10000000
je 0x407a46
cmp eax, 0x2e
jne 0x40772b
push 0x14
call fcn.0040f408
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4076b6
mov dword [ecx], 0x4489a4
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x4076b8
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4076d4
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40771f
cmp word [eax], 0x5c
jne 0x40771c
add eax, 2
cmp eax, ecx
je 0x40771c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x407708
movzx edx, word [eax]
cmp edx, 0x28
je 0x40771a
cmp edx, 0x29
je 0x40771a
test cl, 0x10
jne 0x40771c
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40771a
cmp ecx, 0x7d
jne 0x40771c
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004060a0
jmp 0x407a2d
cmp eax, 0x5c
jne 0x407858
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x407776
cmp word [eax], 0x5c
jne 0x407773
add eax, 2
cmp eax, ecx
je 0x407773
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40775f
movzx edx, word [eax]
cmp edx, 0x28
je 0x407771
cmp edx, 0x29
je 0x407771
test cl, 0x10
jne 0x407773
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x407771
cmp ecx, 0x7d
jne 0x407773
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004060a0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x4077e4
cmp word [esi + 0x48], 0x62
jne 0x4077e4
lea ecx, [esi + 0x24]
call fcn.00408a50
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4077d8
cmp word [eax], 0x5c
jne 0x4077d5
add eax, 2
cmp eax, ecx
je 0x4077d5
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4077c1
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x4077d3
cmp ecx, 0x29
je 0x4077d3
test dl, 0x10
jne 0x4077d5
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4077d3
cmp ecx, 0x7d
jne 0x4077d5
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004060a0
jmp 0x407a34
test eax, eax
je 0x40784c
cmp word [esi + 0x48], 0x42
jne 0x40784c
lea ecx, [esi + 0x24]
call fcn.00408a50
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x407840
cmp word [eax], 0x5c
jne 0x40783d
add eax, 2
cmp eax, ecx
je 0x40783d
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x407829
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40783b
cmp ecx, 0x29
je 0x40783b
test dl, 0x10
jne 0x40783d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40783b
cmp ecx, 0x7d
jne 0x40783d
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004060a0
jmp 0x407a34
mov ecx, esi
call fcn.004086e0
jmp 0x407a2d
cmp eax, 0x5b
jne 0x407909
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4078a3
cmp word [eax], 0x5c
jne 0x4078a0
add eax, 2
cmp eax, ecx
je 0x4078a0
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40788c
movzx edx, word [eax]
cmp edx, 0x28
je 0x40789e
cmp edx, 0x29
je 0x40789e
test cl, 0x10
jne 0x4078a0
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40789e
cmp ecx, 0x7d
jne 0x4078a0
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004060a0
mov ecx, esi
call fcn.00408630
cmp dword [esi + 0x4c], 0x5d
jne 0x407a4d
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4078fd
cmp word [eax], 0x5c
jne 0x4078fa
add eax, 2
cmp eax, ecx
je 0x4078fa
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4078e6
movzx edx, word [eax]
cmp edx, 0x28
je 0x4078f8
cmp edx, 0x29
je 0x4078f8
test cl, 0x10
jne 0x4078fa
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4078f8
cmp ecx, 0x7d
jne 0x4078fa
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004060a0
jmp 0x407a2d
cmp eax, 0x28
jne 0x4079bd
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x407954
cmp word [eax], 0x5c
jne 0x407951
add eax, 2
cmp eax, ecx
je 0x407951
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40793d
movzx edx, word [eax]
cmp edx, 0x28
je 0x40794f
cmp edx, 0x29
je 0x40794f
test cl, 0x10
jne 0x407951
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40794f
cmp ecx, 0x7d
jne 0x407951
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004060a0
mov ecx, esi
call fcn.004087c0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x407a46
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4079b0
cmp word [eax], 0x5c
jne 0x4079ad
add eax, 2
cmp eax, ecx
je 0x4079ad
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x407999
movzx edx, word [eax]
cmp edx, 0x28
je 0x4079ab
cmp edx, 0x29
je 0x4079ab
test cl, 0x10
jne 0x4079ad
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4079ab
cmp ecx, 0x7d
jne 0x4079ad
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004060a0
test bl, bl
je 0x407a34
jmp 0x407a2d
cmp eax, 0x5e
jne 0x4079d3
lea ecx, [esi + 0x24]
call fcn.00408990
mov ecx, esi
call fcn.004075f0
jmp 0x407a34
cmp eax, 0x24
jne 0x4079e9
lea ecx, [esi + 0x24]
call fcn.004089f0
mov ecx, esi
call fcn.004075f0
jmp 0x407a34
cmp eax, 0x2a
je 0x407a5b
cmp eax, 0x2b
je 0x407a5b
cmp eax, 0x3f
je 0x407a5b
cmp eax, 0x7b
je 0x407a5b
cmp eax, 0x7d
jne 0x407a0b
test dword [esi + 0x50], 0x10000000
je 0x407a54
cmp eax, 0x5d
jne 0x407a19
test dword [esi + 0x50], 0x10000000
je 0x407a4d
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00408ab0
mov ecx, esi
call fcn.004075f0
mov ecx, esi
call fcn.00408860
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x407651
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.0040ec1f
push 4
call fcn.0040ec1f
push 6
call fcn.0040ec1f
push 0xa
call fcn.0040ec1f
int3