Function at 0x10053f80
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10054389
cmp eax, 0x7c
je 0x10054389
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10053fc4
cmp dword [esi + 0x10], 0
jne 0x10054387
test dword [esi + 0x50], 0x10000000
je 0x10054399
jmp 0x1005431c
cmp eax, 0x2e
jne 0x10054024
push 5
lea ecx, [esi + 0x24]
call fcn.10056640
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10054363
cmp byte [eax], 0x5c
jne 0x1005401c
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005401c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10054006
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x10054019
cmp byte [ebp - 1], 0x29
je 0x10054019
test bl, 0x10
jne 0x1005401c
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10054019
cmp dl, 0x7d
jne 0x1005401c
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x10054363
cmp eax, 0x5c
jne 0x1005416f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10054075
cmp byte [eax], 0x5c
jne 0x10054072
lea edx, [eax + 1]
cmp edx, ecx
je 0x10054072
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1005405c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1005406f
cmp byte [ebp - 1], 0x29
je 0x1005406f
test bl, 0x10
jne 0x10054072
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005406f
cmp dl, 0x7d
jne 0x10054072
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10056b60
test byte [esi + 0x50], 0x80
je 0x10054163
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x100540e9
push 4
lea ecx, [esi + 0x24]
call fcn.10056640
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100540dd
cmp byte [eax], 0x5c
jne 0x100540da
lea edx, [eax + 1]
cmp edx, ecx
je 0x100540da
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100540c4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x100540d7
cmp bl, 0x29
je 0x100540d7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100540da
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100540d7
cmp dl, 0x7d
jne 0x100540da
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10056b60
jmp 0x10054374
cmp al, 0x42
jne 0x10054163
push 4
lea ecx, [esi + 0x24]
call fcn.10056640
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10054157
cmp byte [eax], 0x5c
jne 0x10054154
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10054152
test byte [esi + 0x50], 8
jne 0x1005412a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x10054140
cmp cl, 0x29
je 0x10054140
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10054152
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x10054140
mov edx, ecx
cmp bl, 0x7d
jne 0x10054152
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.10056b60
jmp 0x10054374
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10056b60
jmp 0x10054374
mov ecx, esi
call fcn.100543c0
jmp 0x1005436a
cmp eax, 0x5b
jne 0x10054228
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100541c5
cmp byte [eax], 0x5c
jne 0x100541c2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x100541c0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100541a6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x100541bb
cmp cl, 0x29
je 0x100541bb
mov ecx, eax
test bl, 0x10
jne 0x100541c0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x100541bb
mov edx, ecx
cmp bl, 0x7d
jne 0x100541c0
lea eax, [edx + 1]
jmp 0x100541c2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10056b60
lea ecx, [esi + 0x24]
call fcn.10053830
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x100541ed
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.100566b0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1005420b
cmp eax, 0x5d
jne 0x1005420b
push eax
lea ecx, [esi + 0x24]
call fcn.100537c0
mov ecx, esi
call fcn.100566b0
mov ecx, esi
call fcn.10054d00
cmp dword [esi + 0x4c], 0x5d
jne 0x100543ab
mov ecx, esi
call fcn.100566b0
jmp 0x1005436a
cmp eax, 0x28
jne 0x100542a7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10054279
cmp byte [eax], 0x5c
jne 0x10054276
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10054274
test byte [esi + 0x50], 8
jne 0x10054259
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1005426f
cmp cl, 0x29
je 0x1005426f
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10054274
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1005426f
mov edx, ecx
cmp bl, 0x7d
jne 0x10054274
lea eax, [edx + 1]
jmp 0x10054276
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10056b60
mov ecx, esi
call fcn.10056d60
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10054399
mov ecx, esi
call fcn.100566b0
test bl, bl
je 0x10054374
jmp 0x1005436a
cmp eax, 0x5e
jne 0x100542bb
push 2
lea ecx, [esi + 0x24]
call fcn.10056640
jmp 0x100540fe
cmp eax, 0x24
jne 0x100542d2
push 3
lea ecx, [esi + 0x24]
call fcn.10056640
lea edi, [esi + 8]
jmp 0x100540fe
cmp eax, 0x2a
je 0x10054390
cmp eax, 0x2b
je 0x10054390
cmp eax, 0x3f
je 0x10054390
cmp eax, 0x7b
je 0x10054390
cmp eax, 0x7d
jne 0x1005430a
test dword [esi + 0x50], 0x10000000
je 0x100543a2
jmp 0x1005431c
cmp eax, 0x5d
jne 0x1005431c
test dword [esi + 0x50], 0x10000000
je 0x100543ab
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10053610
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10054363
cmp byte [eax], 0x5c
jne 0x10054361
inc eax
cmp eax, ecx
je 0x10054361
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10054350
mov dl, byte [eax]
cmp dl, 0x28
je 0x1005435f
cmp dl, 0x29
je 0x1005435f
test cl, 0x10
jne 0x10054361
mov al, byte [eax]
cmp al, 0x7b
je 0x1005435f
cmp al, 0x7d
jne 0x10054361
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10056b60
mov ecx, esi
call fcn.10056710
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10054387
cmp eax, 0x7c
jne 0x10053fa3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10055b50
push 5
mov ecx, esi
call fcn.10055b50
push 6
mov ecx, esi
call fcn.10055b50
push 4
mov ecx, esi
call fcn.10055b50
int3