Function at 0x430190
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov edi, ecx
xor edx, edx
xor esi, esi
mov dword [ebp - 0xc], edi
xor ebx, ebx
cmp dword [edi + 0x6c], edx
je 0x430402
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 0x6c]
mov dword [ebp - 4], eax
nop word [eax + eax]
mov al, byte [eax + edx]
movzx ecx, al
movzx ecx, byte [ecx + 0x5d09e8]
test ecx, ecx
jne 0x43023b
cmp al, 0x41
jb 0x4301d9
cmp al, 0x5a
jbe 0x430240
cmp al, 0x61
jb 0x4301e1
cmp al, 0x7a
jbe 0x430240
cmp al, 0x30
jb 0x4301e9
cmp al, 0x39
jbe 0x430240
cmp al, 0x3d
je 0x430240
cmp al, 0x24
je 0x430240
cmp al, 0x21
je 0x430240
cmp al, 0x3f
je 0x430240
cmp al, 0x26
je 0x430240
cmp al, 0x40
je 0x430240
cmp al, 0x27
je 0x430240
cmp al, 0x3e
je 0x430240
cmp al, 0x3c
je 0x430240
cmp al, 0x28
je 0x430240
cmp al, 0x29
je 0x430240
cmp al, 0x3a
je 0x430240
cmp al, 0x2f
je 0x430240
cmp al, 0x2d
je 0x430240
cmp al, 0x5f
je 0x430240
cmp al, 0x25
je 0x430240
cmp al, 0x2e
je 0x430240
cmp al, 0x7e
je 0x430240
cmp al, 0x20
jne 0x430238
inc ebx
jmp 0x430240
inc esi
jmp 0x430240
inc esi
add esi, ecx
add edx, ecx
mov eax, dword [ebp - 4]
inc edx
cmp edx, edi
jb 0x4301c0
mov edi, dword [ebp - 0xc]
test esi, esi
jne 0x43027c
test ebx, ebx
je 0x430402
xor ecx, ecx
nop dword [eax]
mov eax, dword [edi + 0xc]
cmp byte [eax + ecx], 0x20
jne 0x43026d
mov byte [eax + ecx], 0x2b
inc ecx
cmp ecx, dword [edi + 0x6c]
jb 0x430260
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x6c]
lea ebx, [esi*2 + 4]
add eax, ebx
mov dword [ebp - 0x18], ebx
push eax
call fcn.0040deb0
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
jne 0x4302a6
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
xor esi, esi
mov dword [ebp - 4], ecx
cmp dword [edi + 0x6c], ecx
jbe 0x4303b6
mov eax, dword [edi + 0xc]
mov al, byte [ecx + eax]
movzx ebx, al
mov dword [ebp - 0x10], ebx
movzx ebx, byte [ebx + 0x5d09e8]
mov dword [ebp - 0x14], ebx
test ebx, ebx
jne 0x43036b
cmp al, 0x41
jb 0x4302e0
cmp al, 0x5a
jbe 0x430365
cmp al, 0x61
jb 0x4302e8
cmp al, 0x7a
jbe 0x430365
cmp al, 0x30
jb 0x4302f0
cmp al, 0x39
jbe 0x430365
cmp al, 0x3d
je 0x430365
cmp al, 0x24
je 0x430365
cmp al, 0x21
je 0x430365
cmp al, 0x3f
je 0x430365
cmp al, 0x26
je 0x430365
cmp al, 0x40
je 0x430365
cmp al, 0x27
je 0x430365
cmp al, 0x3c
je 0x430365
cmp al, 0x3e
je 0x430365
cmp al, 0x28
je 0x430365
cmp al, 0x29
je 0x430365
cmp al, 0x3a
je 0x430365
cmp al, 0x2f
je 0x430365
cmp al, 0x2d
je 0x430365
cmp al, 0x5f
je 0x430365
cmp al, 0x25
je 0x430365
cmp al, 0x2e
je 0x430365
cmp al, 0x7e
je 0x430365
lea ecx, [esi + edx]
inc esi
cmp al, 0x20
jne 0x430348
mov byte [ecx], 0x2b
mov ecx, dword [ebp - 4]
jmp 0x4303a6
lea eax, [esi + edx]
mov byte [ecx], 0x25
push eax
push dword [ebp - 0x10]
call fcn.0040e790
mov edx, dword [ebp - 8]
add esp, 8
mov ecx, dword [ebp - 4]
add esi, 2
jmp 0x4303a6
mov byte [esi + edx], al
inc esi
jmp 0x4303a6
xor edi, edi
add ebx, 1
je 0x4303a0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xc]
add eax, edi
mov cl, byte [eax + ecx]
mov byte [esi + edx], 0x25
inc esi
lea eax, [esi + edx]
push eax
movzx eax, cl
push eax
call fcn.0040e790
mov edx, dword [ebp - 8]
inc edi
mov ecx, dword [ebp - 4]
add esp, 8
add esi, 2
cmp edi, ebx
jb 0x430372
add ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, dword [edi + 0x6c]
jb 0x4302b6
mov ebx, dword [ebp - 0x18]
mov byte [esi + edx], 0
cmp byte [edi + 9], 0
mov dword [edi + 0x6c], esi
je 0x4303da
test esi, esi
je 0x4303da
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4303da
push esi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [edi + 0x64]
test eax, eax
je 0x4303f1
push eax
call fcn.005af626
add esp, 4
mov dword [edi + 0x68], 0
mov eax, dword [ebp - 8]
mov dword [edi + 0x64], eax
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0x6c]
add eax, ebx
mov dword [edi + 0x68], eax
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret