Function at 0x4020d0
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x41a461
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x4201f4]
xor eax, esp
mov dword [esp + 0x2c], eax
push ebx
push esi
push edi
mov eax, dword [0x4201f4]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov edi, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], ebx
mov ecx, dword [0x41b508]
mov eax, dword [str.0123456789ABCDEF]
mov edx, dword [0x41b50c]
mov dword [esp + 0x2c], ecx
mov cl, byte [0x41b514]
mov dword [esp + 0x28], eax
mov eax, dword [0x41b510]
push ebx
mov byte [esp + 0x3c], cl
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], ebx
push 0x41b2a7
mov ecx, edi
mov dword [esp + 0x50], 1
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov byte [edi + 4], bl
call fcn.00401dc0
mov ecx, dword [esp + 0x68]
xor esi, esi
cmp ecx, ebx
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], ecx
jle 0x4023b7
jmp 0x402184
mov ecx, dword [esp + 0x68]
cmp esi, ecx
jbe 0x402191
call fcn.0040ae1d
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x58]
mov ebx, 0x10
cmp dword [esp + 0x6c], ebx
jae 0x4021a4
lea eax, [esp + 0x58]
cmp byte [eax + esi], 0x24
je 0x402335
cmp esi, ecx
jbe 0x4021bb
call fcn.0040ae1d
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], ebx
jae 0x4021c9
lea eax, [esp + 0x58]
cmp byte [eax + esi], 0x26
je 0x402335
cmp esi, ecx
jbe 0x4021e0
call fcn.0040ae1d
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], ebx
jae 0x4021ee
lea eax, [esp + 0x58]
cmp byte [eax + esi], 0x2b
je 0x402335
cmp esi, ecx
jbe 0x402205
call fcn.0040ae1d
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], ebx
jae 0x402213
lea eax, [esp + 0x58]
cmp byte [eax + esi], 0x2c
je 0x402335
cmp esi, ecx
jbe 0x40222a
call fcn.0040ae1d
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], ebx
jae 0x402238
lea eax, [esp + 0x58]
cmp byte [eax + esi], 0x2f
je 0x402335
cmp esi, ecx
jbe 0x40224b
call fcn.0040ae1d
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], ebx
jae 0x402259
lea eax, [esp + 0x58]
cmp byte [eax + esi], 0x3a
je 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x5b
je 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x5d
je 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x5c
je 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x3b
je 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x3d
je 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x3f
je 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x40
je 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x23
je 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x20
jl 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x7e
jg 0x402335
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
cmp byte [eax], 0x20
jne 0x40231f
push 0x2b
jmp 0x4023a3
push esi
lea ecx, [esp + 0x58]
call fcn.00401870
mov dl, byte [eax]
mov byte [esp + 0x20], dl
mov eax, dword [esp + 0x20]
jmp 0x4023a2
push 0x25
push 1
mov ecx, edi
call fcn.00401c30
cmp esi, dword [esp + 0x68]
jbe 0x40234b
call fcn.0040ae1d
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], ebx
jae 0x402359
lea eax, [esp + 0x58]
movzx ecx, byte [eax + esi]
shr ecx, 4
mov dl, byte [esp + ecx + 0x28]
mov byte [esp + 0x1c], dl
mov eax, dword [esp + 0x1c]
push eax
push 1
mov ecx, edi
call fcn.00401c30
cmp esi, dword [esp + 0x68]
jbe 0x402381
call fcn.0040ae1d
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], ebx
jae 0x40238f
lea eax, [esp + 0x58]
movsx ecx, byte [eax + esi]
and ecx, 0xf
mov dl, byte [esp + ecx + 0x28]
mov byte [esp + 0x10], dl
mov eax, dword [esp + 0x10]
push eax
push 1
mov ecx, edi
call fcn.00401c30
inc esi
cmp esi, dword [esp + 0x18]
jl 0x402180
cmp dword [esp + 0x6c], 0x10
jb 0x4023cb
mov ecx, dword [esp + 0x58]
push ecx
call fcn.0040a718
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.0040b213
add esp, 0x3c
ret 0x20