Function at 0x5217e0
Capabilities:
Parse credit card information

Disassembly:
mov ecx, dword [0x6d0e30]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x521b41
sub esp, 0x3c
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x4c]
cmp edx, 1
jle 0x5218a8
lea eax, [edx - 1]
test eax, eax
ja 0x52182b
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
jmp 0x52186b
mov dword [esp + 0x28], eax
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
lea ecx, [0x5575c0]
mov dword [esp + 0x10], ecx
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, edx
mov ebp, ecx
mov ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x38], ecx
mov dword [esp], ecx
mov edx, dword [esp + 0x48]
inc edx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004653e0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x64]
test ebp, ebp
jg 0x5218d4
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x5218ec
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x40]
test edx, edx
setne dl
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
movzx eax, byte [esp + 0x44]
jmp 0x52190d
mov byte [esp + 0x64], 0
add esp, 0x3c
ret
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
movzx eax, byte [esp + 0x44]
mov ebx, edx
mov edx, 1
mov byte [esp + 0x23], dl
mov ecx, dword [ebx + 0x58]
mov edx, dword [ebx + 0x60]
cmp ecx, edx
jbe 0x521b39
mov ecx, dword [ebx + 0x54]
movzx ecx, byte [ecx + edx]
cmp cl, 0x30
jb 0x521954
cmp cl, 0x39
jbe 0x521944
cmp cl, 0x41
jb 0x521954
cmp cl, 0x5a
jbe 0x521944
cmp cl, 0x61
jb 0x52194f
cmp cl, 0x7a
ja 0x521995
cmp cl, 0x25
je 0x5219f7
jmp 0x5219b8
cmp cl, 0x5f
je 0x5219b8
cmp cl, 0x2d
je 0x5219b8
cmp cl, 0x3b
je 0x5219b8
cmp cl, 0x2f
je 0x5219b8
cmp cl, 0x3f
je 0x5219b8
cmp cl, 0x3a
je 0x5219b8
cmp cl, 0x40
je 0x5219b8
cmp cl, 0x26
je 0x5219b8
cmp cl, 0x3d
je 0x5219b8
cmp cl, 0x2b
je 0x5219b8
cmp cl, 0x24
je 0x5219b8
cmp cl, 0x2c
je 0x5219b8
cmp cl, 0x2e
je 0x5219b8
cmp cl, 0x21
je 0x5219b8
cmp cl, 0x7e
je 0x5219b8
cmp cl, 0x2a
je 0x5219b8
cmp cl, 0x27
je 0x5219b8
cmp cl, 0x28
je 0x5219b8
cmp cl, 0x29
je 0x5219b8
cmp cl, 0x5b
je 0x5219b8
cmp cl, 0x5d
jne 0x5219f2
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0051b400
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
jmp 0x521a20
cmp cl, 0x25
jne 0x521a63
mov dword [esp], ebx
mov byte [esp + 4], al
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], ecx
call fcn.00521b50
movzx eax, byte [esp + 0x18]
test al, al
je 0x521a5a
mov edx, dword [esp + 0x40]
mov ebx, dword [edx + 0x64]
test ebx, ebx
jg 0x5218f5
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x521a51
mov edx, dword [esp + 0x40]
jmp 0x5218f5
mov byte [esp + 0x64], 0
add esp, 0x3c
ret
mov byte [esp + 0x64], 0
add esp, 0x3c
ret
movzx ecx, byte [esp + 0x23]
test cl, cl
je 0x521aa3
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x60]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x521a98
call fcn.00464b00
mov dword [edi], edx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], edx
mov byte [esp + 0x64], 1
add esp, 0x3c
ret
nop
test al, al
je 0x521ab5
mov eax, 0x1e
lea ecx, [0x583be9]
jmp 0x521ac0
mov eax, 0x13
lea ecx, [0x57fc29]
nop
mov dword [ebx], 3
mov dword [ebx + 0x24], eax
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x521ae5
mov eax, edi
call fcn.00464b00
mov dword [edi], ecx
mov edx, dword [ebx + 0x20]
mov dword [edi + 4], edx
mov edi, eax
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x28], edi
mov dword [ebx + 0x2c], esi
mov dword [ebx + 0x30], ebp
mov dword [ebx + 8], 0x1d
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x521b0c
mov eax, dword [ebx + 4]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x5835b8]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
mov edx, dword [ebx + 0x88]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x1c], edx
mov byte [esp + 0x64], 0
add esp, 0x3c
ret
mov eax, edx
call fcn.00464b70
nop
call fcn.004636f0
jmp fcn.005217e0