Function at 0x52e198
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x3e
push 0
push 0
dec ecx
jne 0x52e1a1
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00405ac8
xor eax, eax
push ebp
push 0x52e883
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x2d], 0
mov dword [ebp - 0x28], 0xffffffff
xor eax, eax
mov dword [ebp - 0x2c], eax
xor ecx, ecx
push ebp
push 0x52e7d8
push dword fs:[ecx]
mov dword fs:[ecx], esp
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0048ff68
push 0
lea eax, [ebp - 0xcc]
push eax
mov byte [ebp - 0xd0], 0x2f
lea ecx, [ebp - 0xd0]
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.0048d080
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0xc]
call fcn.004056d0
push 0
lea eax, [ebp - 0xd4]
push eax
mov byte [ebp - 0xd0], 0x2f
lea ecx, [ebp - 0xd0]
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.0048d080
mov edx, dword [ebp - 0xd4]
lea eax, [ebp - 0xc]
call fcn.004056d0
push 0
lea eax, [ebp - 0xd8]
push eax
mov byte [ebp - 0xd0], 0x2f
lea ecx, [ebp - 0xd0]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0xc]
call fcn.0048d080
mov edx, dword [ebp - 0xd8]
lea eax, [ebp - 0xc]
call fcn.004056d0
push 0
lea eax, [ebp - 0xdc]
push eax
mov byte [ebp - 0xd0], 0x2f
lea ecx, [ebp - 0xd0]
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
call fcn.0048d080
mov edx, dword [ebp - 0xdc]
lea eax, [ebp - 0xc]
call fcn.004056d0
push 0
lea eax, [ebp - 0xe0]
push eax
mov byte [ebp - 0xd0], 0x2f
lea ecx, [ebp - 0xd0]
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0xc]
call fcn.0048d080
mov edx, dword [ebp - 0xe0]
lea eax, [ebp - 0xc]
call fcn.004056d0
push 0
lea eax, [ebp - 0xe4]
push eax
mov byte [ebp - 0xd0], 0x2f
lea ecx, [ebp - 0xd0]
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0xc]
call fcn.0048d080
mov edx, dword [ebp - 0xe4]
lea eax, [ebp - 0xc]
call fcn.004056d0
mov dword [ebp - 0x2c], 1
cmp dword [ebp - 0x10], 0
je 0x52e7ce
cmp dword [ebp - 0x14], 0
je 0x52e7ce
cmp dword [ebp - 0x18], 0
je 0x52e7ce
cmp dword [ebp - 0x1c], 0
je 0x52e7ce
cmp dword [ebp - 0x20], 0
je 0x52e7ce
cmp dword [ebp - 0x24], 0
je 0x52e7ce
mov eax, dword [0x543908]
mov edx, dword [ebp - 0x14]
call fcn.0040568c
cmp dword [ebp - 0x28], 0xffffffff
jne 0x52e4ef
lea edx, [ebp - 0xe8]
mov eax, dword [ebp - 0xc]
call fcn.0040c940
cmp dword [ebp - 0xe8], 0
je 0x52e383
xor eax, eax
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0xec]
mov eax, dword [ebp - 0x18]
call fcn.0040c940
mov edx, dword [ebp - 0xec]
lea eax, [ebp - 0x18]
call fcn.004056d0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x52e3ab
sub eax, 4
mov eax, dword [eax]
cmp eax, 3
jge 0x52e3b5
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 8
mov eax, dword [ebp - 0x18]
call fcn.00497abc
test al, al
jne 0x52e3cd
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 9
mov dword [ebp - 0x2c], 0xa
mov eax, dword [ebp - 0x18]
call fcn.00497e58
test al, al
jne 0x52e3ec
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0xb
cmp dword [ebp - 0x28], 0xffffffff
jne 0x52e40c
mov eax, dword [ebp - 0x18]
call fcn.0052dd68
test eax, eax
jl 0x52e40c
mov dword [ebp - 0x28], 8
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x52e418
sub eax, 4
mov eax, dword [eax]
mov ebx, eax
cmp ebx, 1
jl 0x52e441
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + ebx - 1]
add al, 0xe0
sub al, 0xe0
jb 0x52e43c
lea eax, [ebp - 0x18]
mov ecx, 1
mov edx, ebx
call fcn.00405b80
dec ebx
test ebx, ebx
jne 0x52e41f
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x52e44d
sub eax, 4
mov eax, dword [eax]
mov edx, eax
test edx, edx
jle 0x52e4ef
mov ebx, 1
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + ebx - 1]
cmp al, 0x20
je 0x52e4e0
cmp al, 0x2f
je 0x52e4e0
cmp al, 0x40
je 0x52e4e0
cmp al, 0x3f
je 0x52e4e0
cmp al, 0x27
je 0x52e4e0
cmp al, 0x22
je 0x52e4e0
cmp al, 0x5c
je 0x52e4e0
cmp al, 0x2e
je 0x52e4e0
cmp al, 0x2c
je 0x52e4e0
cmp al, 0x3a
je 0x52e4e0
cmp al, 0x3b
je 0x52e4e0
cmp al, 0x60
je 0x52e4e0
cmp al, 0x7e
je 0x52e4e0
cmp al, 0x21
je 0x52e4e0
cmp al, 0x23
je 0x52e4e0
cmp al, 0x24
je 0x52e4e0
cmp al, 0x25
je 0x52e4e0
cmp al, 0x5e
je 0x52e4e0
cmp al, 0x26
je 0x52e4e0
cmp al, 0x2a
je 0x52e4e0
cmp al, 0x28
je 0x52e4e0
cmp al, 0x29
je 0x52e4e0
cmp al, 0x2d
je 0x52e4e0
cmp al, 0x5f
je 0x52e4e0
cmp al, 0x2b
je 0x52e4e0
cmp al, 0x3d
je 0x52e4e0
cmp al, 0x7c
je 0x52e4e0
cmp al, 0x5b
je 0x52e4e0
cmp al, 0x7b
je 0x52e4e0
cmp al, 0x5d
je 0x52e4e0
cmp al, 0x7d
jne 0x52e4e7
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x52e4ef
inc ebx
dec edx
jne 0x52e45c
mov dword [ebp - 0x2c], 0xc
cmp dword [ebp - 0x28], 0xffffffff
jne 0x52e7ce
xor eax, eax
push ebp
push 0x52e54e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5437f4]
mov eax, dword [eax]
call fcn.00490df0
mov eax, dword [0x5437f4]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00491b0c
test al, al
je 0x52e534
mov dword [ebp - 0x28], 2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52e555
mov eax, dword [0x5437f4]
mov eax, dword [eax]
call fcn.00490dfc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52e811
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
push 0
lea eax, [ebp - 0xc8]
push eax
xor ecx, ecx
xor edx, edx
mov ax, 0x2afc
call fcn.0048fd20
lea edx, [ebp - 0xc8]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.00525adc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52e88a
lea eax, [ebp - 0x1f4]
mov edx, 2
call fcn.0040565c
lea eax, [ebp - 0xec]
mov edx, 7
call fcn.0040565c
lea eax, [ebp - 0xcc]
call fcn.00405638
lea eax, [ebp - 0x24]
mov edx, 8
call fcn.0040565c
ret