Function at 0x453cb0
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 0x4540b7
cmp eax, 0x7c
je 0x4540b7
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x453cf4
cmp dword [esi + 0x10], 0
jne 0x4540b7
test dword [esi + 0x50], 0x10000000
je 0x4540c7
jmp 0x45404c
cmp eax, 0x2e
jne 0x453d54
push 5
lea ecx, [esi + 0x24]
call fcn.00454120
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x454093
cmp byte [eax], 0x5c
jne 0x453d4c
lea edx, [eax + 1]
cmp edx, ecx
je 0x453d4c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x453d36
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x453d49
cmp byte [ebp - 1], 0x29
je 0x453d49
test bl, 0x10
jne 0x453d4c
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x453d49
cmp dl, 0x7d
jne 0x453d4c
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x454093
cmp eax, 0x5c
jne 0x453e9f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x453da5
cmp byte [eax], 0x5c
jne 0x453da2
lea edx, [eax + 1]
cmp edx, ecx
je 0x453da2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x453d8c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x453d9f
cmp byte [ebp - 1], 0x29
je 0x453d9f
test bl, 0x10
jne 0x453da2
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x453d9f
cmp dl, 0x7d
jne 0x453da2
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f6f0
test byte [esi + 0x50], 0x80
je 0x453e93
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x453e19
push 4
lea ecx, [esi + 0x24]
call fcn.00454120
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x453e0d
cmp byte [eax], 0x5c
jne 0x453e0a
lea edx, [eax + 1]
cmp edx, ecx
je 0x453e0a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x453df4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x453e07
cmp bl, 0x29
je 0x453e07
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x453e0a
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x453e07
cmp dl, 0x7d
jne 0x453e0a
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f6f0
jmp 0x4540a4
cmp al, 0x42
jne 0x453e93
push 4
lea ecx, [esi + 0x24]
call fcn.00454120
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x453e87
cmp byte [eax], 0x5c
jne 0x453e84
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x453e82
test byte [esi + 0x50], 8
jne 0x453e5a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x453e70
cmp cl, 0x29
je 0x453e70
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x453e82
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x453e70
mov edx, ecx
cmp bl, 0x7d
jne 0x453e82
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0044f6f0
jmp 0x4540a4
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f6f0
jmp 0x4540a4
mov ecx, esi
call fcn.00456890
jmp 0x45409a
cmp eax, 0x5b
jne 0x453f58
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x453ef5
cmp byte [eax], 0x5c
jne 0x453ef2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x453ef0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x453ed6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x453eeb
cmp cl, 0x29
je 0x453eeb
mov ecx, eax
test bl, 0x10
jne 0x453ef0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x453eeb
mov edx, ecx
cmp bl, 0x7d
jne 0x453ef0
lea eax, [edx + 1]
jmp 0x453ef2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f6f0
lea ecx, [esi + 0x24]
call fcn.0045a030
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x453f1d
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00453c50
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x453f3b
cmp eax, 0x5d
jne 0x453f3b
push eax
lea ecx, [esi + 0x24]
call fcn.0045a0d0
mov ecx, esi
call fcn.00453c50
mov ecx, esi
call fcn.00459b80
cmp dword [esi + 0x4c], 0x5d
jne 0x4540d5
mov ecx, esi
call fcn.00453c50
jmp 0x45409a
cmp eax, 0x28
jne 0x453fd7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x453fa9
cmp byte [eax], 0x5c
jne 0x453fa6
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x453fa4
test byte [esi + 0x50], 8
jne 0x453f89
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x453f9f
cmp cl, 0x29
je 0x453f9f
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x453fa4
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x453f9f
mov edx, ecx
cmp bl, 0x7d
jne 0x453fa4
lea eax, [edx + 1]
jmp 0x453fa6
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f6f0
mov ecx, esi
call fcn.004569e0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4540c7
mov ecx, esi
call fcn.00453c50
test bl, bl
je 0x4540a4
jmp 0x45409a
cmp eax, 0x5e
jne 0x453feb
push 2
lea ecx, [esi + 0x24]
call fcn.00454120
jmp 0x453e2e
cmp eax, 0x24
jne 0x454002
push 3
lea ecx, [esi + 0x24]
call fcn.00454120
lea edi, [esi + 8]
jmp 0x453e2e
cmp eax, 0x2a
je 0x4540c0
cmp eax, 0x2b
je 0x4540c0
cmp eax, 0x3f
je 0x4540c0
cmp eax, 0x7b
je 0x4540c0
cmp eax, 0x7d
jne 0x45403a
test dword [esi + 0x50], 0x10000000
je 0x4540ce
jmp 0x45404c
cmp eax, 0x5d
jne 0x45404c
test dword [esi + 0x50], 0x10000000
je 0x4540d5
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00456c50
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x454093
cmp byte [eax], 0x5c
jne 0x454091
inc eax
cmp eax, ecx
je 0x454091
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x454080
mov dl, byte [eax]
cmp dl, 0x28
je 0x45408f
cmp dl, 0x29
je 0x45408f
test cl, 0x10
jne 0x454091
mov al, byte [eax]
cmp al, 0x7b
je 0x45408f
cmp al, 0x7d
jne 0x454091
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0044f6f0
mov ecx, esi
call fcn.00456b00
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x4540b7
cmp eax, 0x7c
jne 0x453cd3
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0044f6e0
push 5
call fcn.0044f6e0
push 6
call fcn.0044f6e0
push 4
call fcn.0044f6e0
int3