Function at 0x521420
Capabilities:
Parse credit card information

Disassembly:
mov ecx, dword [0x6cfe90]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x521781
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 0x5214e8
lea eax, [edx - 1]
test eax, eax
ja 0x52146b
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
jmp 0x5214ab
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, [0x557560]
mov dword [esp + 0x10], ecx
call fcn.0044b670
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.004653a0
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 0x521514
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x52152c
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 0x52154d
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 0x521779
mov ecx, dword [ebx + 0x54]
movzx ecx, byte [ecx + edx]
cmp cl, 0x30
jb 0x521594
cmp cl, 0x39
jbe 0x521584
cmp cl, 0x41
jb 0x521594
cmp cl, 0x5a
jbe 0x521584
cmp cl, 0x61
jb 0x52158f
cmp cl, 0x7a
ja 0x5215d5
cmp cl, 0x25
je 0x521637
jmp 0x5215f8
cmp cl, 0x5f
je 0x5215f8
cmp cl, 0x2d
je 0x5215f8
cmp cl, 0x3b
je 0x5215f8
cmp cl, 0x2f
je 0x5215f8
cmp cl, 0x3f
je 0x5215f8
cmp cl, 0x3a
je 0x5215f8
cmp cl, 0x40
je 0x5215f8
cmp cl, 0x26
je 0x5215f8
cmp cl, 0x3d
je 0x5215f8
cmp cl, 0x2b
je 0x5215f8
cmp cl, 0x24
je 0x5215f8
cmp cl, 0x2c
je 0x5215f8
cmp cl, 0x2e
je 0x5215f8
cmp cl, 0x21
je 0x5215f8
cmp cl, 0x7e
je 0x5215f8
cmp cl, 0x2a
je 0x5215f8
cmp cl, 0x27
je 0x5215f8
cmp cl, 0x28
je 0x5215f8
cmp cl, 0x29
je 0x5215f8
cmp cl, 0x5b
je 0x5215f8
cmp cl, 0x5d
jne 0x521632
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.0051b040
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 0x521660
cmp cl, 0x25
jne 0x5216a3
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.00521790
movzx eax, byte [esp + 0x18]
test al, al
je 0x52169a
mov edx, dword [esp + 0x40]
mov ebx, dword [edx + 0x64]
test ebx, ebx
jg 0x521535
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x521691
mov edx, dword [esp + 0x40]
jmp 0x521535
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 0x5216e3
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 [0x6cff38]
test eax, eax
je 0x5216d8
call fcn.00464ac0
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 0x5216f5
mov eax, 0x1e
lea ecx, [0x583b3c]
jmp 0x521700
mov eax, 0x13
lea ecx, [0x57fb7c]
nop
mov dword [ebx], 3
mov dword [ebx + 0x24], eax
mov eax, dword [0x6cff38]
test eax, eax
je 0x521725
mov eax, edi
call fcn.00464ac0
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 [0x6cff38]
test eax, eax
je 0x52174c
mov eax, dword [ebx + 4]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x58350b]
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.00464b30
nop
call fcn.004636b0
jmp fcn.00521420