Function at 0x455c70
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 0x4560a2
cmp eax, 0x7c
je 0x4560a2
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x455cb4
cmp dword [esi + 0x10], 0
jne 0x4560a2
test dword [esi + 0x50], 0x10000000
je 0x4560b2
jmp 0x45602e
cmp eax, 0x2e
jne 0x455d14
push 5
lea ecx, [esi + 0x24]
call fcn.00456110
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45607e
cmp word [eax], 0x5c
jne 0x455d0a
lea edx, [eax + 2]
cmp edx, ecx
je 0x455d0a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x455cf3
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x455d07
cmp edi, 0x29
je 0x455d07
test bl, 0x10
jne 0x455d0a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x455d07
cmp edx, 0x7d
jne 0x455d0a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x45607e
cmp eax, 0x5c
jne 0x455e77
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x455d6c
cmp word [eax], 0x5c
jne 0x455d67
lea edx, [eax + 2]
cmp edx, ecx
je 0x455d67
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x455d50
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x455d64
cmp word [ebp - 4], 0x29
je 0x455d64
test bl, 0x10
jne 0x455d67
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x455d64
cmp edx, 0x7d
jne 0x455d67
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00454da0
test byte [esi + 0x50], 0x80
je 0x455e6b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x455de9
push 4
lea ecx, [esi + 0x24]
call fcn.00456110
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x455ddd
cmp word [eax], 0x5c
jne 0x455dd8
lea edx, [eax + 2]
cmp edx, ecx
je 0x455dd8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x455dc1
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x455dd5
cmp ebx, 0x29
je 0x455dd5
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x455dd8
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x455dd5
cmp edx, 0x7d
jne 0x455dd8
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00454da0
jmp 0x45608f
cmp ecx, 0x42
jne 0x455e6b
push 4
lea ecx, [esi + 0x24]
call fcn.00456110
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x455e5f
cmp word [eax], 0x5c
jne 0x455e5a
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x455e58
test byte [esi + 0x50], 8
jne 0x455e2d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x455e44
cmp ecx, 0x29
je 0x455e44
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x455e58
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x455e44
mov edx, ecx
cmp ebx, 0x7d
jne 0x455e58
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.00454da0
jmp 0x45608f
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00454da0
jmp 0x45608f
mov ecx, esi
call fcn.004572d0
jmp 0x456085
cmp eax, 0x5b
jne 0x455f35
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x455ed2
cmp word [eax], 0x5c
jne 0x455ecd
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x455ecb
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x455eb0
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x455ec6
cmp ecx, 0x29
je 0x455ec6
mov ecx, eax
test bl, 0x10
jne 0x455ecb
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x455ec6
mov edx, ecx
cmp edi, 0x7d
jne 0x455ecb
lea eax, [edx + 2]
jmp 0x455ecd
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00454da0
lea ecx, [esi + 0x24]
call fcn.004589c0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x455efa
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00455c20
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x455f18
cmp eax, 0x5d
jne 0x455f18
push eax
lea ecx, [esi + 0x24]
call fcn.00458a50
mov ecx, esi
call fcn.00455c20
mov ecx, esi
call fcn.00458520
cmp dword [esi + 0x4c], 0x5d
jne 0x4560c0
mov ecx, esi
call fcn.00455c20
jmp 0x456085
cmp eax, 0x28
jne 0x455fb9
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x455f8b
cmp word [eax], 0x5c
jne 0x455f86
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x455f84
test byte [esi + 0x50], 8
jne 0x455f68
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x455f7f
cmp ecx, 0x29
je 0x455f7f
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x455f84
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x455f7f
mov edx, ecx
cmp ebx, 0x7d
jne 0x455f84
lea eax, [edx + 2]
jmp 0x455f86
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00454da0
mov ecx, esi
call fcn.00457420
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4560b2
mov ecx, esi
call fcn.00455c20
test bl, bl
je 0x45608f
jmp 0x456085
cmp eax, 0x5e
jne 0x455fcd
push 2
lea ecx, [esi + 0x24]
call fcn.00456110
jmp 0x455dff
cmp eax, 0x24
jne 0x455fe4
push 3
lea ecx, [esi + 0x24]
call fcn.00456110
lea edi, [esi + 8]
jmp 0x455dff
cmp eax, 0x2a
je 0x4560ab
cmp eax, 0x2b
je 0x4560ab
cmp eax, 0x3f
je 0x4560ab
cmp eax, 0x7b
je 0x4560ab
cmp eax, 0x7d
jne 0x45601c
test dword [esi + 0x50], 0x10000000
je 0x4560b9
jmp 0x45602e
cmp eax, 0x5d
jne 0x45602e
test dword [esi + 0x50], 0x10000000
je 0x4560c0
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004576a0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x45607e
cmp word [eax], 0x5c
jne 0x45607b
add eax, 2
cmp eax, ecx
je 0x45607b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x456066
movzx edx, word [eax]
cmp edx, 0x28
je 0x456078
cmp edx, 0x29
je 0x456078
test cl, 0x10
jne 0x45607b
movzx eax, word [eax]
cmp eax, 0x7b
je 0x456078
cmp eax, 0x7d
jne 0x45607b
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00454da0
mov ecx, esi
call fcn.00457550
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x4560a2
cmp eax, 0x7c
jne 0x455c93
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00454d90
push 5
call fcn.00454d90
push 6
call fcn.00454d90
push 4
call fcn.00454d90
int3