Function at 0x413890
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 0x413d75
lea edi, [esi + 8]
nop word [eax + eax]
cmp eax, 0x7c
je 0x413d75
cmp eax, 0x29
jne 0x4138da
cmp dword [esi + 0x10], 0
jne 0x413d75
test dword [esi + 0x50], 0x10000000
je 0x413d85
jmp 0x413d0f
cmp eax, 0x2e
jne 0x413949
push 5
lea ecx, [esi + 0x24]
call fcn.00413da0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x413d56
cmp byte [eax], 0x5c
jne 0x413b4b
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x41393f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x41391f
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x413934
cmp cl, 0x29
je 0x413934
mov ecx, eax
test bl, 0x10
jne 0x41393f
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x413934
mov edx, ecx
cmp bl, 0x7d
jne 0x41393f
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x413d56
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x413d56
cmp eax, 0x5c
jne 0x413a98
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41399e
cmp byte [eax], 0x5c
jne 0x41399b
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x413999
test byte [esi + 0x50], 8
jne 0x41397e
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x413994
cmp cl, 0x29
je 0x413994
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x413999
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x413994
mov edx, ecx
cmp bl, 0x7d
jne 0x413999
lea eax, [edx + 1]
jmp 0x41399b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411f30
test byte [esi + 0x50], 0x80
je 0x413a8c
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x413a25
push 4
lea ecx, [esi + 0x24]
call fcn.00413da0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x413a19
cmp byte [eax], 0x5c
jne 0x413a16
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x413a14
test byte [esi + 0x50], 8
jne 0x4139ec
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x413a02
cmp cl, 0x29
je 0x413a02
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x413a14
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x413a02
mov edx, ecx
cmp bl, 0x7d
jne 0x413a14
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.00411f30
jmp 0x413d67
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411f30
jmp 0x413d67
cmp al, 0x42
jne 0x413a8c
push 4
lea ecx, [esi + 0x24]
call fcn.00413da0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x413a80
cmp byte [eax], 0x5c
jne 0x413a7d
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x413a7d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413a67
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x413a7a
cmp dl, 0x29
je 0x413a7a
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x413a7d
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x413a7a
cmp dl, 0x7d
jne 0x413a7d
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411f30
jmp 0x413d67
mov ecx, esi
call fcn.00415650
jmp 0x413d5d
cmp eax, 0x5b
jne 0x413b53
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x413ae9
cmp byte [eax], 0x5c
jne 0x413ae6
lea edx, [eax + 1]
cmp edx, ecx
je 0x413ae6
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x413ad0
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x413ae3
cmp byte [ebp - 1], 0x29
je 0x413ae3
test bl, 0x10
jne 0x413ae6
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x413ae3
cmp dl, 0x7d
jne 0x413ae6
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411f30
mov ecx, esi
call fcn.00415510
cmp dword [esi + 0x4c], 0x5d
jne 0x413d93
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x413d56
cmp byte [eax], 0x5c
jne 0x413b4b
lea edx, [eax + 1]
cmp edx, ecx
je 0x413b4b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x413b35
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x413b48
cmp byte [ebp - 1], 0x29
je 0x413b48
test bl, 0x10
jne 0x413b4b
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x413b48
cmp dl, 0x7d
jne 0x413b4b
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x413d56
cmp eax, 0x28
jne 0x413c17
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x413ba2
cmp byte [eax], 0x5c
jne 0x413b9f
lea edx, [eax + 1]
cmp edx, ecx
je 0x413b9f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413b89
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x413b9c
cmp bl, 0x29
je 0x413b9c
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x413b9f
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x413b9c
cmp dl, 0x7d
jne 0x413b9f
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411f30
mov ecx, esi
call fcn.004157a0
cmp dword [esi + 0x4c], 0x29
mov bh, al
jne 0x413d85
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x413c03
cmp byte [eax], 0x5c
jne 0x413c00
lea edx, [eax + 1]
cmp edx, ecx
je 0x413c00
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413bea
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x413bfd
cmp bl, 0x29
je 0x413bfd
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x413c00
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x413bfd
cmp dl, 0x7d
jne 0x413c00
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411f30
test bh, bh
je 0x413d67
jmp 0x413d5d
cmp eax, 0x5e
jne 0x413c6e
push 2
lea ecx, [esi + 0x24]
call fcn.00413da0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x413c62
cmp byte [eax], 0x5c
jne 0x413c60
inc eax
cmp eax, ecx
je 0x413c60
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413c4f
mov dl, byte [eax]
cmp dl, 0x28
je 0x413c5e
cmp dl, 0x29
je 0x413c5e
test cl, 0x10
jne 0x413c60
mov al, byte [eax]
cmp al, 0x7b
je 0x413c5e
cmp al, 0x7d
jne 0x413c60
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00411f30
jmp 0x413d67
cmp eax, 0x24
jne 0x413cc5
push 3
lea ecx, [esi + 0x24]
call fcn.00413da0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x413cb9
cmp byte [eax], 0x5c
jne 0x413cb7
inc eax
cmp eax, ecx
je 0x413cb7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413ca6
mov dl, byte [eax]
cmp dl, 0x28
je 0x413cb5
cmp dl, 0x29
je 0x413cb5
test cl, 0x10
jne 0x413cb7
mov al, byte [eax]
cmp al, 0x7b
je 0x413cb5
cmp al, 0x7d
jne 0x413cb7
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00411f30
jmp 0x413d67
cmp eax, 0x2a
je 0x413d7e
cmp eax, 0x2b
je 0x413d7e
cmp eax, 0x3f
je 0x413d7e
cmp eax, 0x7b
je 0x413d7e
cmp eax, 0x7d
jne 0x413cfd
test dword [esi + 0x50], 0x10000000
je 0x413d8c
jmp 0x413d0f
cmp eax, 0x5d
jne 0x413d0f
test dword [esi + 0x50], 0x10000000
je 0x413d93
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00415b60
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x413d56
cmp byte [eax], 0x5c
jne 0x413d54
inc eax
cmp eax, ecx
je 0x413d54
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x413d43
mov dl, byte [eax]
cmp dl, 0x28
je 0x413d52
cmp dl, 0x29
je 0x413d52
test cl, 0x10
jne 0x413d54
mov al, byte [eax]
cmp al, 0x7b
je 0x413d52
cmp al, 0x7d
jne 0x413d54
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00411f30
mov ecx, esi
call fcn.00415930
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x4138b0
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00411f20
push 5
call fcn.00411f20
push 6
call fcn.00411f20
push 4
call fcn.00411f20
int3