Function at 0x45ad10
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 0x45b177
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x45b177
cmp eax, 0x29
jne 0x45ad50
cmp dword [esi + 0x10], 0
jne 0x45b177
test dword [esi + 0x50], 0x10000000
je 0x45b184
jmp 0x45b110
cmp eax, 0x2e
jne 0x45ada3
push 5
lea ecx, [esi + 0x24]
call fcn.0045b1a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45b158
cmp byte [eax], 0x5c
jne 0x45af5f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x45af5f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x45ad9b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x45af5d
cmp dl, 0x29
je 0x45af5d
test bl, 0x10
jmp 0x45af4f
cmp eax, 0x5c
jne 0x45aec1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45adea
cmp byte [eax], 0x5c
jne 0x45ade7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x45ade7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x45add4
mov dl, byte [ecx]
cmp dl, 0x28
je 0x45ade5
cmp dl, 0x29
je 0x45ade5
test bl, 0x10
jne 0x45ade7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x45ade5
cmp dl, 0x7d
jne 0x45ade7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00456a10
test byte [esi + 0x50], 0x80
je 0x45aeb5
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x45ae56
push 4
lea ecx, [esi + 0x24]
call fcn.0045b1a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45ae4a
cmp byte [eax], 0x5c
jne 0x45ae47
lea ecx, [eax + 1]
cmp ecx, edx
je 0x45ae47
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x45ae34
mov dl, byte [ecx]
cmp dl, 0x28
je 0x45ae45
cmp dl, 0x29
je 0x45ae45
test bl, 0x10
jne 0x45ae47
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x45ae45
cmp dl, 0x7d
jne 0x45ae47
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00456a10
jmp 0x45b169
cmp al, 0x42
jne 0x45aeb5
push 4
lea ecx, [esi + 0x24]
call fcn.0045b1a0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45aea9
cmp byte [eax], 0x5c
jne 0x45aea6
lea ecx, [eax + 1]
cmp ecx, edx
je 0x45aea6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x45ae93
mov al, byte [ecx]
cmp al, 0x28
je 0x45aea4
cmp al, 0x29
je 0x45aea4
mov eax, dword [esi]
test dl, 0x10
jne 0x45aea6
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x45aea4
cmp dl, 0x7d
jne 0x45aea6
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00456a10
jmp 0x45b169
mov ecx, esi
call fcn.0045cb70
jmp 0x45b15f
cmp eax, 0x5b
jne 0x45af67
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45af08
cmp byte [eax], 0x5c
jne 0x45af05
lea ecx, [eax + 1]
cmp ecx, edx
je 0x45af05
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x45aef2
mov al, byte [ecx]
cmp al, 0x28
je 0x45af03
cmp al, 0x29
je 0x45af03
mov eax, dword [esi]
test dl, 0x10
jne 0x45af05
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x45af03
cmp dl, 0x7d
jne 0x45af05
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00456a10
mov ecx, esi
call fcn.0045ca40
cmp dword [esi + 0x4c], 0x5d
jne 0x45b192
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45b158
cmp byte [eax], 0x5c
jne 0x45af5f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x45af5f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x45af4c
mov al, byte [ecx]
cmp al, 0x28
je 0x45af5d
cmp al, 0x29
je 0x45af5d
mov eax, dword [esi]
test dl, 0x10
jne 0x45af5f
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x45af5d
cmp dl, 0x7d
jne 0x45af5f
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x45b158
cmp eax, 0x28
jne 0x45b01a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45afae
cmp byte [eax], 0x5c
jne 0x45afab
lea ecx, [eax + 1]
cmp ecx, edx
je 0x45afab
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x45af98
mov al, byte [ecx]
cmp al, 0x28
je 0x45afa9
cmp al, 0x29
je 0x45afa9
mov eax, dword [esi]
test dl, 0x10
jne 0x45afab
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x45afa9
cmp dl, 0x7d
jne 0x45afab
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00456a10
mov ecx, esi
call fcn.0045ccc0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x45b184
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45b006
cmp byte [eax], 0x5c
jne 0x45b003
lea ecx, [eax + 1]
cmp ecx, edx
je 0x45b003
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x45aff0
mov al, byte [ecx]
cmp al, 0x28
je 0x45b001
cmp al, 0x29
je 0x45b001
mov eax, dword [esi]
test dl, 0x10
jne 0x45b003
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x45b001
cmp dl, 0x7d
jne 0x45b003
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00456a10
test bl, bl
je 0x45b169
jmp 0x45b15f
cmp eax, 0x5e
jne 0x45b070
push 2
lea ecx, [esi + 0x24]
call fcn.0045b1a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45b064
cmp byte [eax], 0x5c
jne 0x45b062
inc eax
cmp eax, ecx
je 0x45b062
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x45b04f
mov dl, byte [eax]
cmp dl, 0x28
je 0x45b060
cmp dl, 0x29
je 0x45b060
test cl, 0x10
jne 0x45b062
mov cl, byte [eax]
cmp cl, 0x7b
je 0x45b060
cmp cl, 0x7d
jne 0x45b062
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00456a10
jmp 0x45b169
cmp eax, 0x24
jne 0x45b0c6
push 3
lea ecx, [esi + 0x24]
call fcn.0045b1a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45b0ba
cmp byte [eax], 0x5c
jne 0x45b0b8
inc eax
cmp eax, ecx
je 0x45b0b8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x45b0a5
mov dl, byte [eax]
cmp dl, 0x28
je 0x45b0b6
cmp dl, 0x29
je 0x45b0b6
test cl, 0x10
jne 0x45b0b8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x45b0b6
cmp cl, 0x7d
jne 0x45b0b8
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00456a10
jmp 0x45b169
cmp eax, 0x2a
je 0x45b17d
cmp eax, 0x2b
je 0x45b17d
cmp eax, 0x3f
je 0x45b17d
cmp eax, 0x7b
je 0x45b17d
cmp eax, 0x7d
jne 0x45b0fe
test dword [esi + 0x50], 0x10000000
je 0x45b18b
jmp 0x45b110
cmp eax, 0x5d
jne 0x45b110
test dword [esi + 0x50], 0x10000000
je 0x45b192
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0045d0a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45b158
cmp byte [eax], 0x5c
jne 0x45b156
inc eax
cmp eax, ecx
je 0x45b156
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x45b143
mov dl, byte [eax]
cmp dl, 0x28
je 0x45b154
cmp dl, 0x29
je 0x45b154
test cl, 0x10
jne 0x45b156
mov cl, byte [eax]
cmp cl, 0x7b
je 0x45b154
cmp cl, 0x7d
jne 0x45b156
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00456a10
mov ecx, esi
call fcn.0045ce70
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x45ad26
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.00456a00
push 5
call fcn.00456a00
push 6
call fcn.00456a00
push 4
call fcn.00456a00
int3