Function at 0x415c20
Capabilities:
Parse credit card information

Disassembly:
sub esp, 8
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x41614c
lea edi, [esi + 8]
nop dword [eax]
cmp eax, 0x7c
je 0x41614c
cmp eax, 0x29
jne 0x415c6a
cmp dword [esi + 0x10], 0
jne 0x41614c
test dword [esi + 0x50], 0x10000000
je 0x41615c
jmp 0x4160dd
cmp eax, 0x2e
jne 0x415ce0
push 5
lea ecx, [esi + 0x24]
call fcn.00416180
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41612d
cmp word [eax], 0x5c
jne 0x415ef6
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x415cd4
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x415cb1
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x415cc7
cmp ecx, 0x29
je 0x415cc7
mov ecx, eax
test bl, 0x10
jne 0x415cd4
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x415cc7
mov edx, ecx
cmp edi, 0x7d
jne 0x415cd4
lea eax, [edx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x41612d
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x41612d
cmp eax, 0x5c
jne 0x415e45
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415d3a
cmp word [eax], 0x5c
jne 0x415d35
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x415d33
test byte [esi + 0x50], 8
jne 0x415d17
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x415d2e
cmp ecx, 0x29
je 0x415d2e
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x415d33
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x415d2e
mov edx, ecx
cmp ebx, 0x7d
jne 0x415d33
lea eax, [edx + 2]
jmp 0x415d35
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00414960
test byte [esi + 0x50], 0x80
je 0x415e39
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x415dcc
push 4
lea ecx, [esi + 0x24]
call fcn.00416180
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415dc0
cmp word [eax], 0x5c
jne 0x415dbb
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x415db9
test byte [esi + 0x50], 8
jne 0x415d8e
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x415da5
cmp ecx, 0x29
je 0x415da5
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x415db9
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x415da5
mov edx, ecx
cmp ebx, 0x7d
jne 0x415db9
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.00414960
jmp 0x41613e
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00414960
jmp 0x41613e
cmp ecx, 0x42
jne 0x415e39
push 4
lea ecx, [esi + 0x24]
call fcn.00416180
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x415e2d
cmp word [eax], 0x5c
jne 0x415e28
lea ebx, [eax + 2]
cmp ebx, ecx
je 0x415e28
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x415e11
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x28
je 0x415e25
cmp edx, 0x29
je 0x415e25
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x415e28
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x7b
je 0x415e25
cmp edx, 0x7d
jne 0x415e28
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00414960
jmp 0x41613e
mov ecx, esi
call fcn.00416de0
jmp 0x416134
cmp eax, 0x5b
jne 0x415f00
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x415e96
cmp word [eax], 0x5c
jne 0x415e91
lea edx, [eax + 2]
cmp edx, ecx
je 0x415e91
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x415e7a
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x415e8e
cmp edi, 0x29
je 0x415e8e
test bl, 0x10
jne 0x415e91
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x415e8e
cmp edx, 0x7d
jne 0x415e91
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00414960
mov ecx, esi
call fcn.00416cf0
cmp dword [esi + 0x4c], 0x5d
jne 0x41616a
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41612d
cmp word [eax], 0x5c
jne 0x415ef6
lea edx, [eax + 2]
cmp edx, ecx
je 0x415ef6
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x415edf
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x415ef3
cmp edi, 0x29
je 0x415ef3
test bl, 0x10
jne 0x415ef6
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x415ef3
cmp edx, 0x7d
jne 0x415ef6
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x41612d
cmp eax, 0x28
jne 0x415fd3
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x415f54
cmp word [eax], 0x5c
jne 0x415f4f
lea edx, [eax + 2]
cmp edx, ecx
je 0x415f4f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x415f38
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x415f4c
cmp ebx, 0x29
je 0x415f4c
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x415f4f
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x415f4c
cmp edx, 0x7d
jne 0x415f4f
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00414960
mov ecx, esi
call fcn.00416f70
cmp dword [esi + 0x4c], 0x29
mov byte [esp + 0x13], al
jne 0x41615c
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x415fbc
cmp word [eax], 0x5c
jne 0x415fb7
lea edx, [eax + 2]
cmp edx, ecx
je 0x415fb7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x415fa0
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x415fb4
cmp ebx, 0x29
je 0x415fb4
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x415fb7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x415fb4
cmp edx, 0x7d
jne 0x415fb7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00414960
cmp byte [esp + 0x13], 0
je 0x41613e
jmp 0x416134
cmp eax, 0x5e
jne 0x416033
push 2
lea ecx, [esi + 0x24]
call fcn.00416180
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x416027
cmp word [eax], 0x5c
jne 0x416024
add eax, 2
cmp eax, ecx
je 0x416024
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41600f
movzx edx, word [eax]
cmp edx, 0x28
je 0x416021
cmp edx, 0x29
je 0x416021
test cl, 0x10
jne 0x416024
movzx eax, word [eax]
cmp eax, 0x7b
je 0x416021
cmp eax, 0x7d
jne 0x416024
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00414960
jmp 0x41613e
cmp eax, 0x24
jne 0x416093
push 3
lea ecx, [esi + 0x24]
call fcn.00416180
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x416087
cmp word [eax], 0x5c
jne 0x416084
add eax, 2
cmp eax, ecx
je 0x416084
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41606f
movzx edx, word [eax]
cmp edx, 0x28
je 0x416081
cmp edx, 0x29
je 0x416081
test cl, 0x10
jne 0x416084
movzx eax, word [eax]
cmp eax, 0x7b
je 0x416081
cmp eax, 0x7d
jne 0x416084
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00414960
jmp 0x41613e
cmp eax, 0x2a
je 0x416155
cmp eax, 0x2b
je 0x416155
cmp eax, 0x3f
je 0x416155
cmp eax, 0x7b
je 0x416155
cmp eax, 0x7d
jne 0x4160cb
test dword [esi + 0x50], 0x10000000
je 0x416163
jmp 0x4160dd
cmp eax, 0x5d
jne 0x4160dd
test dword [esi + 0x50], 0x10000000
je 0x41616a
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00417370
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41612d
cmp word [eax], 0x5c
jne 0x41612a
add eax, 2
cmp eax, ecx
je 0x41612a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x416115
movzx edx, word [eax]
cmp edx, 0x28
je 0x416127
cmp edx, 0x29
je 0x416127
test cl, 0x10
jne 0x41612a
movzx eax, word [eax]
cmp eax, 0x7b
je 0x416127
cmp eax, 0x7d
jne 0x41612a
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00414960
mov ecx, esi
call fcn.00417140
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x415c40
pop edi
pop esi
mov al, cl
pop ebx
add esp, 8
ret
push 0xa
call fcn.00414950
push 5
call fcn.00414950
push 6
call fcn.00414950
push 4
call fcn.00414950
int3