Function at 0x42a4b0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov ebp, dword [esp + 0x30]
mov ecx, dword [ecx]
push esi
mov dword [esp + 0xc], ecx
mov eax, dword [ebp]
mov esi, eax
cmp byte [ecx], 0x28
push edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x18], 0
jne 0x42a642
mov al, byte [ecx + 1]
cmp al, 0x2a
jne 0x42a4fe
add ecx, 2
mov dword [esp + 0x10], ecx
jmp 0x42a642
cmp al, 0x3f
je 0x42a51e
mov eax, esi
inc eax
mov dword [ebp], eax
test edi, edi
jne 0x42a514
cmp eax, ebx
je 0x42a8a0
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x42a642
mov al, byte [ecx + 2]
lea edx, [ecx + 2]
cmp al, 0x7c
jne 0x42a53c
add ecx, 3
mov dword [esp + 0x18], 1
mov dword [esp + 0x10], ecx
jmp 0x42a642
cmp al, 0x23
jne 0x42a575
add ecx, 3
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x42a897
cmp al, 0x29
je 0x42a897
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
jne 0x42a551
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
or eax, 0xffffffff
pop ebx
add esp, 0xc
ret
mov ecx, edx
mov dword [esp + 0x10], ecx
cmp al, 0x28
jne 0x42a5ba
cmp byte [ecx + 1], 0x3f
je 0x42a642
mov al, byte [ecx]
test al, al
je 0x42a642
cmp al, 0x29
je 0x42a5a7
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
jne 0x42a593
jmp 0x42a642
cmp byte [ecx], 0
je 0x42a642
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x42a642
cmp byte [ecx], 0x50
jne 0x42a5c4
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
cmp al, 0x3c
jne 0x42a5d7
mov dl, byte [ecx + 1]
cmp dl, 0x21
je 0x42a5d7
cmp dl, 0x3d
jne 0x42a5db
cmp al, 0x27
jne 0x42a642
mov eax, esi
inc eax
mov dword [ebp], eax
test edi, edi
jne 0x42a5ed
cmp eax, ebx
je 0x42a8a0
movzx edx, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
cmp edx, 0x3c
jne 0x42a5ff
mov edx, 0x3e
movzx eax, byte [ecx]
mov esi, ecx
cmp eax, edx
je 0x42a614
inc ecx
mov dword [esp + 0x10], ecx
movzx eax, byte [ecx]
cmp eax, edx
jne 0x42a608
test edi, edi
je 0x42a63e
mov eax, ecx
sub eax, esi
cmp ebx, eax
jne 0x42a63e
push ebx
push esi
push edi
call fcn.004216c3
add esp, 0xc
test eax, eax
jne 0x42a63a
mov eax, dword [ebp]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
cmp ecx, dword [edi + 0x1c]
jae 0x42a897
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov al, byte [ecx]
cmp al, 0x5c
jne 0x42a69e
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x42a897
cmp al, 0x51
jne 0x42a7c2
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x42a897
cmp al, 0x5c
jne 0x42a674
test al, al
je 0x42a897
inc ecx
mov dword [esp + 0x10], ecx
cmp byte [ecx], 0x45
jne 0x42a674
jmp 0x42a7c2
cmp al, 0x5b
jne 0x42a766
xor esi, esi
mov al, byte [ecx + 1]
cmp al, 0x5c
jne 0x42a6de
add ecx, 2
cmp byte [ecx], 0x45
jne 0x42a6bd
mov dword [esp + 0x10], ecx
jmp 0x42a6a8
push 3
push 0x4b2f70
push ecx
call fcn.004216c3
mov ecx, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x42a6f2
add ecx, 4
mov dword [esp + 0x10], ecx
jmp 0x42a6a8
test esi, esi
jne 0x42a6f2
cmp al, 0x5e
jne 0x42a6f2
inc ecx
mov esi, 1
mov dword [esp + 0x10], ecx
jmp 0x42a6a8
cmp byte [ecx + 1], 0x5d
lea eax, [ecx + 1]
jne 0x42a706
test dword [edi + 0x4c], 0x2000000
jne 0x42a706
mov ecx, eax
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
cmp al, 0x5d
je 0x42a7be
test al, al
je 0x42a89d
cmp al, 0x5c
jne 0x42a759
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x42a897
cmp al, 0x51
jne 0x42a759
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
test al, al
je 0x42a897
cmp al, 0x5c
jne 0x42a734
test al, al
je 0x42a897
inc ecx
mov dword [esp + 0x10], ecx
cmp byte [ecx], 0x45
jne 0x42a734
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
cmp al, 0x5d
jne 0x42a715
jmp 0x42a7be
test edx, edx
je 0x42a830
cmp al, 0x23
jne 0x42a830
inc ecx
mov dword [esp + 0x10], ecx
mov dl, byte [ecx]
test dl, dl
je 0x42a897
mov esi, dword [edi + 0x60]
test esi, esi
je 0x42a7d9
mov edx, dword [edi + 0x1c]
cmp ecx, edx
jae 0x42a7f7
push ebx
lea eax, [edi + 0x64]
push eax
push edx
push esi
push ecx
call fcn.0043cb30
mov ecx, dword [esp + 0x24]
add esp, 0x14
test eax, eax
je 0x42a7f7
mov eax, dword [edi + 0x64]
dec ecx
add ecx, eax
mov dword [esp + 0x10], ecx
cmp byte [ecx], 0
je 0x42a897
mov edx, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [edi + 0x1c]
jae 0x42a897
mov esi, dword [esp + 0x38]
jmp 0x42a657
mov eax, dword [edi + 0x1c]
mov esi, dword [edi + 0x64]
sub eax, esi
cmp ecx, eax
ja 0x42a7f7
cmp dl, byte [edi + 0x68]
jne 0x42a7f7
cmp esi, 1
je 0x42a7ab
mov al, byte [ecx + 1]
cmp al, byte [edi + 0x69]
je 0x42a7ab
inc ecx
mov dword [esp + 0x10], ecx
test ebx, ebx
je 0x42a815
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x42a815
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x42a808
mov dl, byte [ecx]
test dl, dl
jne 0x42a785
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
or eax, 0xffffffff
pop ebx
add esp, 0xc
ret
cmp al, 0x28
jne 0x42a85a
push ebp
push ebx
push edx
push dword [esp + 0x38]
lea eax, [esp + 0x20]
push dword [esp + 0x38]
push edi
push eax
call fcn.0042a4b0
add esp, 0x1c
test eax, eax
jg 0x42a8a0
mov ecx, dword [esp + 0x10]
jmp 0x42a7b5
cmp al, 0x29
je 0x42a888
cmp al, 0x7c
jne 0x42a7c2
cmp dword [esp + 0x18], 0
je 0x42a7c2
mov eax, dword [ebp]
cmp eax, esi
jle 0x42a87c
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov dword [ebp], eax
jmp 0x42a7c2
cmp dword [esp + 0x18], 0
je 0x42a897
cmp dword [ebp], esi
jge 0x42a897
mov dword [ebp], esi
mov eax, dword [esp + 0x20]
mov dword [eax], ecx
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret