Function at 0x45b3be
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
push ebx
xor ebx, ebx
cmp dword [0x414104], ebx
push esi
push edi
mov dword [ebp - 4], ebx
je 0x45b3e7
cmp dword [ebp + 8], ebx
jne 0x45b3e7
push 1
mov dword [0x414150], ebx
pop esi
jmp 0x45b3f0
push 1
pop esi
mov dword [0x414150], esi
push dword [0x4208a4]
mov dword [0x4208f4], ebx
mov dword [0x4208f8], ebx
call fcn.0045b768
mov dword [0x4208fc], eax
mov eax, dword [0x4208a4]
pop ecx
mov cl, byte [eax]
test cl, cl
je 0x45b423
cmp cl, 0x2f
jne 0x45b420
mov byte [eax], 0x5c
inc eax
jmp 0x45b412
mov edi, dword [0x4208a4]
mov al, byte [edi]
cmp al, 0x5c
jne 0x45b43f
and byte [ebp - 0x107], 0
mov dword [0x4208f8], esi
inc edi
jmp 0x45b4b3
mov ecx, dword [0x40f4c8]
cmp dword [ecx], esi
jle 0x45b45c
movsx eax, al
push 0x103
push eax
call dword [0x40f50c]
pop ecx
pop ecx
jmp 0x45b470
mov ecx, dword [0x40f510]
movsx eax, al
mov ecx, dword [ecx]
mov ax, word [ecx + eax*2]
and eax, 0x103
cmp eax, ebx
je 0x45b4b3
mov eax, dword [0x4208a4]
cmp byte [eax + 1], 0x3a
jne 0x45b4b3
mov dword [0x4208f8], esi
mov al, byte [edi]
inc edi
mov byte [ebp - 0x108], al
mov al, byte [edi]
inc edi
mov byte [ebp - 0x107], al
lea eax, [ebp - 0x106]
cmp byte [edi], 0x5c
jne 0x45b4b0
mov byte [ebp - 0x106], 0x5c
lea eax, [ebp - 0x105]
inc edi
and byte [eax], 0
and byte [ebp - 0x108], 0
lea esi, [ebp - 0x108]
movzx ebx, byte [edi]
inc edi
test ebx, ebx
je 0x45b573
cmp ebx, 0x2a
ja 0x45b500
je 0x45b56a
mov eax, ebx
sub eax, 0x20
je 0x45b4e2
dec eax
dec eax
jmp 0x45b525
cmp dword [0x414124], 0
jne 0x45b56a
push dword [0x4208a4]
call fcn.0045b68c
test eax, eax
pop ecx
jne 0x45b56a
mov byte [esi], 0x20
jmp 0x45b56d
cmp ebx, 0x3a
je 0x45b56a
cmp ebx, 0x3b
je 0x45b562
cmp ebx, 0x3c
je 0x45b56a
cmp ebx, 0x3d
jbe 0x45b527
cmp ebx, 0x3f
jbe 0x45b56a
cmp ebx, 0x5c
je 0x45b67a
cmp ebx, 0x7c
je 0x45b56a
mov eax, dword [0x40f4c8]
cmp dword [eax], 1
jle 0x45b541
push 0x157
push ebx
call dword [0x40f50c]
pop ecx
pop ecx
jmp 0x45b551
mov eax, dword [0x40f510]
mov eax, dword [eax]
mov ax, word [eax + ebx*2]
and eax, 0x157
test eax, eax
jne 0x45b55e
cmp ebx, 0x7f
jb 0x45b4c0
mov byte [esi], bl
jmp 0x45b56d
mov dword [ebp - 4], esi
mov byte [esi], 0x3b
jmp 0x45b56d
mov byte [esi], 0x5f
inc esi
jmp 0x45b4c0
and byte [esi], 0
cmp dword [0x41413c], 0
jne 0x45b5c3
mov edi, dword [ebp - 4]
test edi, edi
je 0x45b5c3
lea esi, [edi + 1]
mov eax, dword [0x40f4c8]
cmp dword [eax], 1
jle 0x45b5a3
movzx eax, byte [esi]
push 4
push eax
call dword [0x40f50c]
pop ecx
pop ecx
jmp 0x45b5b4
mov ecx, dword [0x40f510]
movzx eax, byte [esi]
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
je 0x45b5bb
inc esi
jmp 0x45b589
cmp byte [esi], 0
jne 0x45b5c3
and byte [edi], 0
mov eax, dword [0x4208a4]
mov ecx, dword [0x4208fc]
cmp byte [eax + ecx - 1], 0x5c
jne 0x45b5ef
cmp dword [0x4208f4], 0
je 0x45b5eb
cmp dword [0x414120], 0
jne 0x45b5eb
push 0x4d
jmp 0x45b5fa
push 2
jmp 0x45b5fa
cmp byte [ebp - 0x108], 0
jne 0x45b5fd
push 3
pop eax
jmp 0x45b675
mov ecx, dword [0x414788]
test byte [ecx + 0x14], 0x20
je 0x45b631
mov cl, byte [0x420900]
and byte [ebp + 0xa], 0
push eax
lea eax, [ebp + 8]
add cl, 0x60
push eax
mov byte [ebp + 8], cl
mov byte [ebp + 9], 0x3a
call dword [0x40f05c]
neg eax
sbb eax, eax
add eax, 3
jmp 0x45b675
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.0045b79c
pop ecx
pop ecx
push dword [0x4207bc]
push dword [0x4208a4]
call fcn.0045b79c
pop ecx
lea eax, [ebp - 0x108]
pop ecx
push eax
push dword [0x4208a4]
call fcn.0045b796
pop ecx
pop ecx
push dword [0x4208a4]
call fcn.00450d6a
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
and byte [esi], 0
and dword [ebp - 4], 0
lea esi, [ebp - 0x108]
jmp 0x45b4c0