Function at 0x469520
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp]
push esi
mov esi, dword [esp + 0x24]
mov edx, eax
mov dword [esp + 0xc], ecx
cmp byte [ecx], 0x28
push edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], 0
jne 0x4696bb
mov dl, byte [ecx + 1]
cmp dl, 0x2a
jne 0x46956f
add ecx, 2
mov dword [esp + 0x10], ecx
jmp 0x4696bb
cmp dl, 0x3f
je 0x46958e
inc eax
mov dword [ebp], eax
test esi, esi
jne 0x469584
cmp eax, edi
je 0x46988f
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x4696bb
mov dl, byte [ecx + 2]
cmp dl, 0x7c
jne 0x4695aa
add ecx, 3
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 1
jmp 0x4696bb
cmp dl, 0x23
jne 0x4695e4
add ecx, 3
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x469886
cmp al, 0x29
je 0x469886
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
jne 0x4695c0
mov edx, dword [esp + 0x20]
pop edi
pop esi
pop ebp
mov dword [edx], ecx
or eax, 0xffffffff
pop ebx
add esp, 0xc
ret
add ecx, 2
mov dword [esp + 0x10], ecx
cmp dl, 0x28
jne 0x469637
cmp byte [ecx + 1], 0x3f
je 0x4696bb
mov al, byte [ecx]
test al, al
je 0x469886
cmp al, 0x29
je 0x469624
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
jne 0x469604
mov edx, dword [esp + 0x20]
pop edi
pop esi
pop ebp
mov dword [edx], ecx
or eax, 0xffffffff
pop ebx
add esp, 0xc
ret
cmp byte [ecx], 0
je 0x469886
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x4696bb
cmp byte [ecx], 0x50
jne 0x469641
inc ecx
mov dword [esp + 0x10], ecx
mov dl, byte [ecx]
cmp dl, 0x3c
jne 0x469655
mov bl, byte [ecx + 1]
cmp bl, 0x21
je 0x469655
cmp bl, 0x3d
jne 0x46965a
cmp dl, 0x27
jne 0x4696bb
inc eax
mov dword [ebp], eax
test esi, esi
jne 0x46966a
cmp eax, edi
je 0x46988f
movzx eax, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
cmp eax, 0x3c
jne 0x46967c
mov eax, 0x3e
movzx ebx, byte [ecx]
mov edx, ecx
cmp ebx, eax
je 0x469691
inc ecx
mov dword [esp + 0x10], ecx
movzx ebx, byte [ecx]
cmp ebx, eax
jne 0x469685
test esi, esi
je 0x4696bb
mov eax, ecx
sub eax, edx
cmp edi, eax
jne 0x4696bb
push edi
push edx
push esi
call fcn.00473798
add esp, 0xc
test eax, eax
jne 0x4696b7
mov eax, dword [ebp]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
test al, al
je 0x469886
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
jmp 0x4696d4
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
cmp al, 0x5c
jne 0x46971d
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x469886
cmp al, 0x51
jne 0x469857
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x469886
cmp al, 0x5c
jne 0x4696f3
test al, al
je 0x469886
inc ecx
mov dword [esp + 0x10], ecx
cmp byte [ecx], 0x45
jne 0x4696f3
jmp 0x469857
cmp al, 0x5b
jne 0x4697e2
xor esi, esi
mov al, byte [ecx + 1]
cmp al, 0x5c
jne 0x46975d
add ecx, 2
cmp byte [ecx], 0x45
jne 0x46973c
mov dword [esp + 0x10], ecx
jmp 0x469727
push 3
push 0x49a1b0
push ecx
call fcn.00473798
mov ecx, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x469771
add ecx, 4
mov dword [esp + 0x10], ecx
jmp 0x469727
test esi, esi
jne 0x469771
cmp al, 0x5e
jne 0x469771
inc ecx
mov esi, 1
mov dword [esp + 0x10], ecx
jmp 0x469727
cmp byte [ecx + 1], 0x5d
jne 0x469781
test dword [ebx + 0x44], 0x2000000
jne 0x469781
inc ecx
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
cmp al, 0x5d
je 0x469857
test al, al
je 0x46988c
cmp al, 0x5c
jne 0x4697d5
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x469886
cmp al, 0x51
jne 0x4697d5
nop
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x469886
cmp al, 0x5c
jne 0x4697b0
test al, al
je 0x469886
inc ecx
mov dword [esp + 0x10], ecx
cmp byte [ecx], 0x45
jne 0x4697b0
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
cmp al, 0x5d
jne 0x469790
jmp 0x469857
test edi, edi
je 0x46980d
cmp al, 0x23
jne 0x46980d
lea ebx, [ebx]
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x469886
cmp al, 0xa
jne 0x4697f0
test al, al
je 0x469886
jmp 0x469857
cmp al, 0x28
jne 0x469836
mov ecx, dword [esp + 0x2c]
push ebp
push edi
push ecx
push esi
lea edx, [esp + 0x20]
push ebx
push edx
call fcn.00469520
add esp, 0x18
test eax, eax
jg 0x46988f
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
je 0x469886
jmp 0x469857
cmp al, 0x29
je 0x469877
cmp al, 0x7c
jne 0x469857
cmp dword [esp + 0x14], 0
je 0x469857
mov eax, dword [ebp]
cmp eax, edx
jle 0x469850
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
mov dword [ebp], eax
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
jne 0x4696d0
mov edx, dword [esp + 0x20]
pop edi
pop esi
pop ebp
mov dword [edx], ecx
or eax, 0xffffffff
pop ebx
add esp, 0xc
ret
cmp dword [esp + 0x14], 0
je 0x469886
cmp dword [ebp], edx
jge 0x469886
mov dword [ebp], edx
mov edx, dword [esp + 0x20]
mov dword [edx], ecx
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret