Function at 0x416590
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x416ad4
cmp eax, 0x7c
je 0x416ad4
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x4165d2
cmp dword [esi + 0x10], 0
jne 0x416ad4
test dword [esi + 0x50], 0x10000000
je 0x416ae3
jmp 0x416a60
cmp eax, 0x2e
jne 0x416642
push 5
lea ecx, [esi + 0x24]
call fcn.00416b00
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x416ab0
cmp word [eax], 0x5c
jne 0x41686d
lea edx, [eax + 2]
cmp edx, ecx
je 0x41686d
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x416619
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x416635
cmp edi, 0x29
je 0x416635
test bl, 0x10
jne 0x41686d
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x416635
cmp edx, 0x7d
jne 0x41686d
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x416ab0
cmp eax, 0x5c
jne 0x41679e
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x416693
cmp word [eax], 0x5c
jne 0x41668e
lea edx, [eax + 2]
cmp edx, ecx
je 0x41668e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x416677
movzx ebp, word [edx]
mov ecx, eax
cmp ebp, 0x28
je 0x41668b
cmp ebp, 0x29
je 0x41668b
test bl, 0x10
jne 0x41668e
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x41668b
cmp edx, 0x7d
jne 0x41668e
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00415510
test byte [esi + 0x50], 0x80
je 0x416792
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x416710
push 4
lea ecx, [esi + 0x24]
call fcn.00416b00
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x416704
cmp word [eax], 0x5c
jne 0x4166ff
lea edx, [eax + 2]
cmp edx, ecx
je 0x4166ff
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4166e8
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x4166fc
cmp ebx, 0x29
je 0x4166fc
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4166ff
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x4166fc
cmp edx, 0x7d
jne 0x4166ff
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00415510
jmp 0x416ac1
cmp ecx, 0x42
jne 0x416792
push 4
lea ecx, [esi + 0x24]
call fcn.00416b00
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x416786
cmp word [eax], 0x5c
jne 0x416781
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x41677f
test byte [esi + 0x50], 8
jne 0x416754
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x41676b
cmp ecx, 0x29
je 0x41676b
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x41677f
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x41676b
mov edx, ecx
cmp ebx, 0x7d
jne 0x41677f
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.00415510
jmp 0x416ac1
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00415510
jmp 0x416ac1
mov ecx, esi
call fcn.004177a0
jmp 0x416ab7
cmp eax, 0x5b
jne 0x416877
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4167fc
cmp word [eax], 0x5c
jne 0x4167f4
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x4167f2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4167d7
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x4167ed
cmp ecx, 0x29
je 0x4167ed
mov ecx, eax
test bl, 0x10
jne 0x4167f2
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x4167ed
mov edx, ecx
cmp edi, 0x7d
jne 0x4167f2
lea eax, [edx + 2]
jmp 0x4167f4
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.00415510
mov ecx, esi
call fcn.004176c0
cmp dword [esi + 0x4c], 0x5d
jne 0x416af1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x416ab0
cmp word [eax], 0x5c
jne 0x41686d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x41686b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x416848
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x41685e
cmp ecx, 0x29
je 0x41685e
mov ecx, eax
test bl, 0x10
jne 0x41686b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x41685e
mov edx, ecx
cmp edi, 0x7d
jne 0x41686b
lea eax, [edx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x416ab0
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x416ab0
cmp eax, 0x28
jne 0x416959
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4168d1
cmp word [eax], 0x5c
jne 0x4168cc
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x4168ca
test byte [esi + 0x50], 8
jne 0x4168ae
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x4168c5
cmp ecx, 0x29
je 0x4168c5
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4168ca
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x4168c5
mov edx, ecx
cmp ebx, 0x7d
jne 0x4168ca
lea eax, [edx + 2]
jmp 0x4168cc
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00415510
mov ecx, esi
call fcn.00417930
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [esp + 0x13], bl
jne 0x416ae3
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x416945
cmp word [eax], 0x5c
jne 0x416940
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x41693a
test byte [esi + 0x50], 8
jne 0x41691e
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x416935
cmp ecx, 0x29
je 0x416935
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x41693a
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x416935
mov edx, ecx
cmp ebx, 0x7d
jne 0x41693a
lea eax, [edx + 2]
jmp 0x41693c
mov eax, ecx
mov bl, byte [esp + 0x13]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00415510
test bl, bl
je 0x416ac1
jmp 0x416ab7
cmp eax, 0x5e
jne 0x4169b6
push 2
lea ecx, [esi + 0x24]
call fcn.00416b00
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4169aa
cmp word [eax], 0x5c
jne 0x4169a7
add eax, 2
cmp eax, ecx
je 0x4169a7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x416992
movzx edx, word [eax]
cmp edx, 0x28
je 0x4169a4
cmp edx, 0x29
je 0x4169a4
test cl, 0x10
jne 0x4169a7
movzx eax, word [eax]
cmp eax, 0x7b
je 0x4169a4
cmp eax, 0x7d
jne 0x4169a7
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00415510
jmp 0x416ac1
cmp eax, 0x24
jne 0x416a16
push 3
lea ecx, [esi + 0x24]
call fcn.00416b00
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x416a0a
cmp word [eax], 0x5c
jne 0x416a07
add eax, 2
cmp eax, ecx
je 0x416a07
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4169f2
movzx edx, word [eax]
cmp edx, 0x28
je 0x416a04
cmp edx, 0x29
je 0x416a04
test cl, 0x10
jne 0x416a07
movzx eax, word [eax]
cmp eax, 0x7b
je 0x416a04
cmp eax, 0x7d
jne 0x416a07
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00415510
jmp 0x416ac1
cmp eax, 0x2a
je 0x416adc
cmp eax, 0x2b
je 0x416adc
cmp eax, 0x3f
je 0x416adc
cmp eax, 0x7b
je 0x416adc
cmp eax, 0x7d
jne 0x416a4e
test dword [esi + 0x50], 0x10000000
je 0x416aea
jmp 0x416a60
cmp eax, 0x5d
jne 0x416a60
test dword [esi + 0x50], 0x10000000
je 0x416af1
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00417d30
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x416ab0
cmp word [eax], 0x5c
jne 0x416aad
add eax, 2
cmp eax, ecx
je 0x416aad
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x416a98
movzx edx, word [eax]
cmp edx, 0x28
je 0x416aaa
cmp edx, 0x29
je 0x416aaa
test cl, 0x10
jne 0x416aad
movzx eax, word [eax]
cmp eax, 0x7b
je 0x416aaa
cmp eax, 0x7d
jne 0x416aad
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00415510
mov ecx, esi
call fcn.00417b00
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x416ad4
cmp eax, 0x7c
jne 0x4165b1
pop edi
pop esi
pop ebp
mov al, cl
pop ebx
pop ecx
ret
push 0xa
call fcn.00415500
push 5
call fcn.00415500
push 6
call fcn.00415500
push 4
call fcn.00415500
int3