Function at 0x4058f0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
cmp dword [esi + 0x4c], 0xffffffff
je 0x405b33
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x405b33
cmp eax, 0x29
jne 0x40592e
cmp dword [esi + 0x10], 0
jne 0x405b33
test dword [esi + 0x50], 0x10000000
jne 0x405b0c
jmp 0x405b39
cmp eax, 0x2e
jne 0x405985
push 5
lea ecx, [esi + 0x24]
call fcn.00405ba0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x405979
cmp byte [eax], 0x5c
jne 0x405977
inc eax
cmp eax, ecx
je 0x405977
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x405964
mov dl, byte [eax]
cmp dl, 0x28
je 0x405975
cmp dl, 0x29
je 0x405975
test cl, 0x10
jne 0x405977
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405975
cmp cl, 0x7d
jne 0x405977
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00404fe0
jmp 0x405b20
cmp eax, 0x5c
jne 0x4059e1
mov ecx, esi
call fcn.004058a0
test byte [esi + 0x50], 0x80
je 0x4059d5
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x4059b4
push 4
lea ecx, [esi + 0x24]
call fcn.00405ba0
mov ecx, esi
call fcn.004058a0
jmp 0x405b27
cmp al, 0x42
jne 0x4059d5
push 4
lea ecx, [esi + 0x24]
call fcn.00405ba0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.004058a0
jmp 0x405b27
mov ecx, esi
call fcn.00406190
jmp 0x405b20
cmp eax, 0x5b
jne 0x405a80
mov ecx, esi
call fcn.004058a0
lea ecx, [esi + 0x24]
call fcn.00407810
cmp dword [esi + 0x4c], 0x5e
jne 0x405a49
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x405a42
cmp byte [eax], 0x5c
jne 0x405a40
inc eax
cmp eax, ecx
je 0x405a40
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x405a2d
mov dl, byte [eax]
cmp dl, 0x28
je 0x405a3e
cmp dl, 0x29
je 0x405a3e
test cl, 0x10
jne 0x405a40
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405a3e
cmp cl, 0x7d
jne 0x405a40
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00404fe0
test dword [esi + 0x50], 0x20000000
je 0x405a69
cmp dword [esi + 0x4c], 0x5d
jne 0x405a69
push 0x5d
lea ecx, [esi + 0x24]
call fcn.004078a0
mov ecx, esi
call fcn.004058a0
mov ecx, esi
call fcn.00407430
push 4
push 0x5d
mov ecx, esi
call fcn.00406130
jmp 0x405b20
cmp eax, 0x28
jne 0x405aaa
mov ecx, esi
call fcn.004058a0
mov ecx, esi
call fcn.004062d0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.00406130
test bl, bl
je 0x405b27
jmp 0x405b20
cmp eax, 0x5e
jne 0x405ac2
push 2
lea ecx, [esi + 0x24]
call fcn.00405ba0
mov ecx, esi
call fcn.004058a0
jmp 0x405b27
cmp eax, 0x24
jne 0x405ada
push 3
lea ecx, [esi + 0x24]
call fcn.00405ba0
mov ecx, esi
call fcn.004058a0
jmp 0x405b27
cmp eax, 0x2a
je 0x405b4e
cmp eax, 0x2b
je 0x405b4e
cmp eax, 0x3f
je 0x405b4e
cmp eax, 0x7b
je 0x405b4e
cmp eax, 0x7d
jne 0x405afe
test dword [esi + 0x50], 0x10000000
jne 0x405b0c
jmp 0x405b40
cmp eax, 0x5d
jne 0x405b0c
test dword [esi + 0x50], 0x10000000
je 0x405b47
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00406500
mov ecx, esi
call fcn.004058a0
mov ecx, esi
call fcn.004063d0
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x405901
pop edi
pop esi
mov al, cl
pop ebx
ret
push 5
call fcn.00404fd0
push 6
call fcn.00404fd0
push 4
call fcn.00404fd0
push 0xa
call fcn.00404fd0
int3