Function at 0x4156e0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x415b8d
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x415b8d
cmp eax, 0x29
jne 0x415720
cmp dword [esi + 0x10], 0
jne 0x415b8d
test dword [esi + 0x50], 0x10000000
je 0x415b9a
jmp 0x415b20
cmp eax, 0x2e
jne 0x415775
push 5
lea ecx, [esi + 0x24]
call fcn.00415bb0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415b6e
cmp word [eax], 0x5c
jne 0x415953
lea ecx, [eax + 2]
cmp ecx, edx
je 0x415953
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x41576d
movzx edx, word [ecx]
cmp edx, 0x28
je 0x415951
cmp edx, 0x29
je 0x415951
test bl, 0x10
jmp 0x415942
cmp eax, 0x5c
jne 0x4158a9
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4157c1
cmp word [eax], 0x5c
jne 0x4157bc
lea ecx, [eax + 2]
cmp ecx, edx
je 0x4157bc
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4157a8
movzx edx, word [ecx]
cmp edx, 0x28
je 0x4157ba
cmp edx, 0x29
je 0x4157ba
test bl, 0x10
jne 0x4157bc
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x4157ba
cmp edx, 0x7d
jne 0x4157bc
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145d0
test byte [esi + 0x50], 0x80
je 0x41589d
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x415836
push 4
lea ecx, [esi + 0x24]
call fcn.00415bb0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41582a
cmp word [eax], 0x5c
jne 0x415825
lea ecx, [eax + 2]
cmp ecx, edx
je 0x415825
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x415811
movzx edx, word [ecx]
cmp edx, 0x28
je 0x415823
cmp edx, 0x29
je 0x415823
test bl, 0x10
jne 0x415825
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x415823
cmp edx, 0x7d
jne 0x415825
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145d0
jmp 0x415b7f
cmp ecx, 0x42
jne 0x41589d
push 4
lea ecx, [esi + 0x24]
call fcn.00415bb0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415891
cmp word [eax], 0x5c
jne 0x41588c
lea ecx, [eax + 2]
cmp ecx, edx
je 0x41588c
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x415878
movzx eax, word [ecx]
cmp eax, 0x28
je 0x41588a
cmp eax, 0x29
je 0x41588a
mov eax, dword [esi]
test dl, 0x10
jne 0x41588c
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x41588a
cmp edx, 0x7d
jne 0x41588c
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145d0
jmp 0x415b7f
mov ecx, esi
call fcn.00416570
jmp 0x415b75
cmp eax, 0x5b
jne 0x41595d
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4158f7
cmp word [eax], 0x5c
jne 0x4158f2
lea ecx, [eax + 2]
cmp ecx, edx
je 0x4158f2
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4158de
movzx eax, word [ecx]
cmp eax, 0x28
je 0x4158f0
cmp eax, 0x29
je 0x4158f0
mov eax, dword [esi]
test dl, 0x10
jne 0x4158f2
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x4158f0
cmp edx, 0x7d
jne 0x4158f2
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145d0
mov ecx, esi
call fcn.00416490
cmp dword [esi + 0x4c], 0x5d
jne 0x415ba8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415b6e
cmp word [eax], 0x5c
jne 0x415953
lea ecx, [eax + 2]
cmp ecx, edx
je 0x415953
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x41593f
movzx eax, word [ecx]
cmp eax, 0x28
je 0x415951
cmp eax, 0x29
je 0x415951
mov eax, dword [esi]
test dl, 0x10
jne 0x415953
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x415951
cmp edx, 0x7d
jne 0x415953
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x415b6e
cmp eax, 0x28
jne 0x415a1e
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4159ab
cmp word [eax], 0x5c
jne 0x4159a6
lea ecx, [eax + 2]
cmp ecx, edx
je 0x4159a6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x415992
movzx eax, word [ecx]
cmp eax, 0x28
je 0x4159a4
cmp eax, 0x29
je 0x4159a4
mov eax, dword [esi]
test dl, 0x10
jne 0x4159a6
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x4159a4
cmp edx, 0x7d
jne 0x4159a6
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145d0
mov ecx, esi
call fcn.00416700
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x415b9a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415a0a
cmp word [eax], 0x5c
jne 0x415a05
lea ecx, [eax + 2]
cmp ecx, edx
je 0x415a05
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4159f1
movzx eax, word [ecx]
cmp eax, 0x28
je 0x415a03
cmp eax, 0x29
je 0x415a03
mov eax, dword [esi]
test dl, 0x10
jne 0x415a05
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x415a03
cmp edx, 0x7d
jne 0x415a05
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145d0
test bl, bl
je 0x415b7f
jmp 0x415b75
cmp eax, 0x5e
jne 0x415a7a
push 2
lea ecx, [esi + 0x24]
call fcn.00415bb0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x415a6e
cmp word [eax], 0x5c
jne 0x415a6b
add eax, 2
cmp eax, ecx
je 0x415a6b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x415a57
movzx edx, word [eax]
cmp edx, 0x28
je 0x415a69
cmp edx, 0x29
je 0x415a69
test cl, 0x10
jne 0x415a6b
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x415a69
cmp ecx, 0x7d
jne 0x415a6b
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004145d0
jmp 0x415b7f
cmp eax, 0x24
jne 0x415ad6
push 3
lea ecx, [esi + 0x24]
call fcn.00415bb0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x415aca
cmp word [eax], 0x5c
jne 0x415ac7
add eax, 2
cmp eax, ecx
je 0x415ac7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x415ab3
movzx edx, word [eax]
cmp edx, 0x28
je 0x415ac5
cmp edx, 0x29
je 0x415ac5
test cl, 0x10
jne 0x415ac7
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x415ac5
cmp ecx, 0x7d
jne 0x415ac7
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004145d0
jmp 0x415b7f
cmp eax, 0x2a
je 0x415b93
cmp eax, 0x2b
je 0x415b93
cmp eax, 0x3f
je 0x415b93
cmp eax, 0x7b
je 0x415b93
cmp eax, 0x7d
jne 0x415b0e
test dword [esi + 0x50], 0x10000000
je 0x415ba1
jmp 0x415b20
cmp eax, 0x5d
jne 0x415b20
test dword [esi + 0x50], 0x10000000
je 0x415ba8
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00416ad0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x415b6e
cmp word [eax], 0x5c
jne 0x415b6b
add eax, 2
cmp eax, ecx
je 0x415b6b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x415b57
movzx edx, word [eax]
cmp edx, 0x28
je 0x415b69
cmp edx, 0x29
je 0x415b69
test cl, 0x10
jne 0x415b6b
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x415b69
cmp ecx, 0x7d
jne 0x415b6b
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004145d0
mov ecx, esi
call fcn.004168a0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x4156f6
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.004145c0
push 5
call fcn.004145c0
push 6
call fcn.004145c0
push 4
call fcn.004145c0
int3