Function at 0x56a620
Capabilities:
Parse credit card information

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x56ad38
sub esp, 0x44
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x56ad08
lea ecx, [0x7ac140]
mov dword [esp], ecx
mov dword [esp + 4], 0
shr eax, 1
mov dword [esp + 0x28], eax
mov dword [esp + 8], eax
call fcn.0043a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
cmp byte [ecx], 0x22
jne 0x56aa17
mov edx, dword [esp + 0x4c]
dec edx
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, 1
add ecx, edx
mov edx, dword [esp + 0x28]
xor ebp, ebp
jmp 0x56a695
mov ecx, eax
mov eax, edi
mov ebp, esi
test ebx, ebx
je 0x56a9ee
mov dword [esp + 0x38], eax
movzx esi, byte [ecx]
lea edi, [ebx - 1]
mov dword [esp + 0x4c], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 1
lea eax, [edi + ecx]
xchg esi, eax
cmp al, 0x22
xchg esi, eax
je 0x56a908
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ebp
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x56a7e6
cmp ebx, 1
je 0x56a7bd
movzx ecx, byte [ecx + edi]
cmp cl, 0xb
jne 0x56a755
lea esi, [ebp + 1]
cmp esi, edx
ja 0x56a709
mov edi, dword [esp + 0x38]
mov byte [edi + ebp], cl
lea ecx, [ebx - 2]
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add eax, ecx
jmp 0x56a68f
mov byte [esp + 0x21], cl
mov dword [esp + 0x4c], ebx
lea eax, [0x7ac140]
mov dword [esp], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
call fcn.0043a950
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea esi, [eax + 1]
mov eax, dword [esp + 0x40]
movzx ecx, byte [esp + 0x21]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
jmp 0x56a6f5
cmp cl, 0xc
je 0x56a6ea
cmp cl, 1
jb 0x56a7b9
cmp cl, 9
xchg esi, ebx
setbe bl
xchg esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x56a6ea
cmp cl, 0xe
jb 0x56a7b5
cmp cl, 0x7f
xchg esi, ebx
setbe bl
xchg esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x56a6ea
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
xor esi, esi
jmp 0x56a782
xor esi, esi
jmp 0x56a769
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
xchg esi, eax
cmp al, 0xb
xchg esi, eax
jne 0x56a850
lea ecx, [ebp + 1]
cmp ecx, edx
ja 0x56a80a
mov ebx, dword [esp + 0x38]
xchg esi, eax
mov byte [ebx + ebp], al
xchg esi, eax
mov esi, ecx
mov edi, ebx
mov ebx, dword [esp + 0x4c]
jmp 0x56a68f
xchg esi, eax
mov byte [esp + 0x20], al
xchg esi, eax
lea eax, [0x7ac140]
mov dword [esp], eax
mov ebx, dword [esp + 0x38]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.0043a950
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x24]
movzx esi, byte [esp + 0x20]
jmp 0x56a7f8
xchg esi, eax
cmp al, 0xc
xchg esi, eax
je 0x56a7ed
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x56a7ed
xchg esi, eax
cmp al, 0x21
xchg esi, eax
je 0x56a7ed
xchg esi, eax
cmp al, 0x7f
xchg esi, eax
je 0x56a7ed
xchg esi, eax
cmp al, 1
xchg esi, eax
jb 0x56a901
xchg esi, eax
cmp al, 8
xchg esi, eax
setbe cl
test cl, cl
jne 0x56a7ed
xchg esi, eax
cmp al, 0xe
xchg esi, eax
jb 0x56a8fd
xchg esi, eax
cmp al, 0x1f
xchg esi, eax
setbe cl
test cl, cl
jne 0x56a7ed
xchg esi, eax
cmp al, 0x23
xchg esi, eax
jb 0x56a8f9
xchg esi, eax
cmp al, 0x5b
xchg esi, eax
setbe cl
test cl, cl
jne 0x56a7ed
xchg esi, eax
cmp al, 0x5d
xchg esi, eax
jb 0x56a8f5
xchg esi, eax
cmp al, 0x7e
xchg esi, eax
setbe cl
test cl, cl
jne 0x56a7ed
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
xor ecx, ecx
jmp 0x56a8c4
xor ecx, ecx
jmp 0x56a8ad
xor ecx, ecx
jmp 0x56a896
xor ecx, ecx
jmp 0x56a87f
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
test ecx, ecx
jne 0x56a93d
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
cmp byte [eax], 0x40
jne 0x56a914
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ebp
dec ecx
mov dword [esp + 0x4c], ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add eax, ecx
mov dword [esp + 0x48], eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0056ad50
movzx eax, byte [esp + 0x14]
test al, al
je 0x56a9c5
mov dword [esp], 0
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
call fcn.0043dd50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov byte [esp + 0x60], 1
add esp, 0x44
ret
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
xor ebp, ebp
jmp 0x56aa41
xchg esi, ebx
mov byte [eax + ebp], bl
xchg esi, ebx
lea esi, [edi - 1]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add ecx, esi
mov ebp, ebx
mov ebx, edi
mov dword [esp + 0x2c], ebp
test ebx, ebx
jle 0x56ac06
movzx esi, byte [ecx]
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x56aaff
lea esi, [ebx - 1]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add ecx, esi
cmp ebx, 1
je 0x56aad6
test edi, edi
jbe 0x56ad31
lea ebx, [ebp + 1]
movzx esi, byte [ecx]
cmp ebx, edx
jbe 0x56aa23
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], ecx
xchg esi, eax
mov byte [esp + 0x21], al
xchg esi, eax
lea ecx, [0x7ac140]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.0043a950
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0x2c]
movzx esi, byte [esp + 0x21]
mov edi, dword [esp + 0x4c]
jmp 0x56aa23
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jb 0x56ab14
xchg esi, eax
cmp al, 0x39
xchg esi, eax
ja 0x56ab14
mov edi, ebx
jmp 0x56aa73
xchg esi, eax
cmp al, 0x61
xchg esi, eax
jb 0x56ad01
xchg esi, eax
cmp al, 0x7a
xchg esi, eax
xchg edi, ebx
setbe bl
xchg edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x56ab0d
xchg esi, eax
cmp al, 0x41
xchg esi, eax
jb 0x56acfa
xchg esi, eax
cmp al, 0x5a
xchg esi, eax
xchg edi, ebx
setbe bl
xchg edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x56ab0d
xchg esi, eax
cmp al, 0x21
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x23
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x24
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x25
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x26
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x27
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x2a
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x2b
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x2d
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x2f
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x3d
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x3f
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x5e
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x5f
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x60
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x7b
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x7c
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x7d
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x7e
xchg esi, eax
je 0x56ab0d
xchg esi, eax
cmp al, 0x2e
xchg esi, eax
je 0x56ab0d
test ebp, ebp
je 0x56acd1
movzx esi, word [0x8abd7a]
mov word [esp + 0x22], si
cmp byte [eax], 0x2e
jne 0x56ac60
mov esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x56ac37
mov esi, eax
mov eax, ecx
mov ecx, ebx
mov ebx, esi
jmp 0x56a910
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
movzx esi, byte [ebp + eax - 1]
xchg esi, eax
cmp al, 0x2e
xchg esi, eax
jne 0x56ac73
mov esi, 1
jmp 0x56ac24
mov dword [esp + 0x30], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], ebx
nop
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
lea ecx, [esp + 0x22]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.00505c30
cmp dword [esp + 0x18], 0xffffffff
xchg esi, ebx
setne bl
xchg esi, ebx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
jmp 0x56ac24
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
xor edi, edi
jmp 0x56ab48
xor edi, edi
jmp 0x56ab2b
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
add esp, 0x44
ret
call fcn.004287c0
ud2
call fcn.0044d880
jmp fcn.0056a620