Function at 0x57ad80
Capabilities:
Parse credit card information

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x57b154
sub esp, 0x38
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x48]
cmp edx, 1
jle 0x57ae08
lea eax, [edx - 1]
mov dword [esp + 0x24], eax
test eax, eax
ja 0x57b10f
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x30]
add edx, ecx
mov dword [esp], edx
mov edx, dword [esp + 0x44]
inc edx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0045e900
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x3c]
cmp dword [edx + 0x64], 1
jl 0x57b0e4
mov ebx, dword [esp + 0x48]
test ebx, ebx
setg bl
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
movzx ecx, byte [esp + 0x40]
jmp 0x57ae48
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
movzx ecx, byte [esp + 0x40]
mov ebx, 1
mov edi, ebx
mov ebx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [edx + 0x60]
cmp esi, ebx
jae 0x57b14a
movzx ebx, byte [ebp + esi]
cmp bl, 0x30
jb 0x57af20
cmp bl, 0x39
ja 0x57af20
cmp bl, 0x25
jne 0x57aee6
mov dword [esp], edx
mov byte [esp + 4], cl
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x54]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x10], ebp
lea esi, [esp + 0x2c]
mov dword [esp + 0x14], esi
call fcn.0057b160
movzx eax, byte [esp + 0x18]
test al, al
je 0x57aedd
mov edx, dword [esp + 0x3c]
cmp dword [edx + 0x64], 1
jge 0x57ae32
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00571e80
movzx eax, byte [esp + 8]
test al, al
je 0x57aed4
mov edx, dword [esp + 0x3c]
jmp 0x57ae32
mov byte [esp + 0x60], 0
add esp, 0x38
ret
mov byte [esp + 0x60], 0
add esp, 0x38
ret
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call fcn.00574850
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 0x57aea8
cmp bl, 0x41
jb 0x57af2e
cmp bl, 0x5a
jbe 0x57ae72
cmp bl, 0x61
jb 0x57af3c
cmp bl, 0x7a
jbe 0x57ae72
cmp bl, 0x5f
je 0x57ae72
cmp bl, 0x2d
je 0x57ae72
cmp bl, 0x3b
je 0x57ae72
cmp bl, 0x2f
je 0x57ae72
cmp bl, 0x3f
je 0x57ae72
cmp bl, 0x3a
je 0x57ae72
cmp bl, 0x40
je 0x57ae72
cmp bl, 0x26
je 0x57ae72
cmp bl, 0x3d
je 0x57ae72
cmp bl, 0x2b
je 0x57ae72
cmp bl, 0x24
je 0x57ae72
cmp bl, 0x2c
je 0x57ae72
cmp bl, 0x2e
je 0x57ae72
cmp bl, 0x21
je 0x57ae72
cmp bl, 0x7e
je 0x57ae72
cmp bl, 0x2a
je 0x57ae72
cmp bl, 0x27
je 0x57ae72
cmp bl, 0x28
je 0x57ae72
cmp bl, 0x29
je 0x57ae72
cmp bl, 0x5b
je 0x57ae72
cmp bl, 0x5d
je 0x57ae72
cmp bl, 0x25
je 0x57ae72
xchg edi, eax
test al, al
xchg edi, eax
je 0x57b03a
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x5c]
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x57b033
mov dword [edi], eax
mov byte [esp + 0x60], 1
add esp, 0x38
ret
call fcn.0045df70
jmp 0x57b02a
nop
test cl, cl
je 0x57b0d4
lea ecx, [0x5f5a72]
mov ebx, 0x1e
nop
mov dword [edx], 3
mov dword [edx + 0x24], ebx
mov ebx, dword [0x770e60]
test ebx, ebx
jne 0x57b0c4
mov dword [edx + 0x20], ecx
mov dword [edx + 0x28], eax
mov ecx, dword [esp + 0x54]
mov dword [edx + 0x2c], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x30], ecx
mov dword [edx + 8], 0x1d
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x57b0b4
lea eax, [0x5f4dbe]
mov dword [edx + 4], eax
mov eax, dword [edx + 0x84]
mov ecx, dword [edx + 0x88]
mov ebx, dword [edx + 0x80]
mov dword [edx + 0x14], ebx
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
mov byte [esp + 0x60], 0
add esp, 0x38
ret
lea edi, [edx + 4]
lea eax, [0x5f4dbe]
call fcn.0045df70
jmp 0x57b090
lea edi, [edx + 0x20]
mov ebx, eax
mov eax, ecx
call fcn.0045df70
mov eax, ebx
jmp 0x57b065
lea ecx, [0x5f07a2]
mov ebx, 0x13
jmp 0x57b04e
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00571e80
movzx eax, byte [esp + 8]
test al, al
je 0x57b106
mov edx, dword [esp + 0x3c]
jmp 0x57ae16
mov byte [esp + 0x60], 0
add esp, 0x38
ret
lea ecx, [0x5bec80]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
call fcn.004450a0
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
jmp 0x57adcd
mov eax, esi
mov ecx, ebx
call fcn.0045dff0
nop
call fcn.0045ca10
jmp fcn.0057ad80