Function at 0x10055a70
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 0x10055e79
cmp eax, 0x7c
je 0x10055e79
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10055ab4
cmp dword [esi + 0x10], 0
jne 0x10055e77
test dword [esi + 0x50], 0x10000000
je 0x10055e89
jmp 0x10055e0c
cmp eax, 0x2e
jne 0x10055b14
push 5
lea ecx, [esi + 0x24]
call fcn.10058130
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10055e53
cmp byte [eax], 0x5c
jne 0x10055b0c
lea edx, [eax + 1]
cmp edx, ecx
je 0x10055b0c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10055af6
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x10055b09
cmp byte [ebp - 1], 0x29
je 0x10055b09
test bl, 0x10
jne 0x10055b0c
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10055b09
cmp dl, 0x7d
jne 0x10055b0c
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x10055e53
cmp eax, 0x5c
jne 0x10055c5f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10055b65
cmp byte [eax], 0x5c
jne 0x10055b62
lea edx, [eax + 1]
cmp edx, ecx
je 0x10055b62
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10055b4c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x10055b5f
cmp byte [ebp - 1], 0x29
je 0x10055b5f
test bl, 0x10
jne 0x10055b62
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10055b5f
cmp dl, 0x7d
jne 0x10055b62
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10058650
test byte [esi + 0x50], 0x80
je 0x10055c53
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x10055bd9
push 4
lea ecx, [esi + 0x24]
call fcn.10058130
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10055bcd
cmp byte [eax], 0x5c
jne 0x10055bca
lea edx, [eax + 1]
cmp edx, ecx
je 0x10055bca
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10055bb4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x10055bc7
cmp bl, 0x29
je 0x10055bc7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10055bca
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10055bc7
cmp dl, 0x7d
jne 0x10055bca
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10058650
jmp 0x10055e64
cmp al, 0x42
jne 0x10055c53
push 4
lea ecx, [esi + 0x24]
call fcn.10058130
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10055c47
cmp byte [eax], 0x5c
jne 0x10055c44
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10055c42
test byte [esi + 0x50], 8
jne 0x10055c1a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x10055c30
cmp cl, 0x29
je 0x10055c30
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10055c42
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x10055c30
mov edx, ecx
cmp bl, 0x7d
jne 0x10055c42
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.10058650
jmp 0x10055e64
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10058650
jmp 0x10055e64
mov ecx, esi
call fcn.10055eb0
jmp 0x10055e5a
cmp eax, 0x5b
jne 0x10055d18
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10055cb5
cmp byte [eax], 0x5c
jne 0x10055cb2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x10055cb0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10055c96
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x10055cab
cmp cl, 0x29
je 0x10055cab
mov ecx, eax
test bl, 0x10
jne 0x10055cb0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x10055cab
mov edx, ecx
cmp bl, 0x7d
jne 0x10055cb0
lea eax, [edx + 1]
jmp 0x10055cb2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10058650
lea ecx, [esi + 0x24]
call fcn.10055320
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x10055cdd
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.100581a0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x10055cfb
cmp eax, 0x5d
jne 0x10055cfb
push eax
lea ecx, [esi + 0x24]
call fcn.100552b0
mov ecx, esi
call fcn.100581a0
mov ecx, esi
call fcn.100567f0
cmp dword [esi + 0x4c], 0x5d
jne 0x10055e9b
mov ecx, esi
call fcn.100581a0
jmp 0x10055e5a
cmp eax, 0x28
jne 0x10055d97
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10055d69
cmp byte [eax], 0x5c
jne 0x10055d66
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10055d64
test byte [esi + 0x50], 8
jne 0x10055d49
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x10055d5f
cmp cl, 0x29
je 0x10055d5f
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10055d64
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x10055d5f
mov edx, ecx
cmp bl, 0x7d
jne 0x10055d64
lea eax, [edx + 1]
jmp 0x10055d66
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10058650
mov ecx, esi
call fcn.10058850
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10055e89
mov ecx, esi
call fcn.100581a0
test bl, bl
je 0x10055e64
jmp 0x10055e5a
cmp eax, 0x5e
jne 0x10055dab
push 2
lea ecx, [esi + 0x24]
call fcn.10058130
jmp 0x10055bee
cmp eax, 0x24
jne 0x10055dc2
push 3
lea ecx, [esi + 0x24]
call fcn.10058130
lea edi, [esi + 8]
jmp 0x10055bee
cmp eax, 0x2a
je 0x10055e80
cmp eax, 0x2b
je 0x10055e80
cmp eax, 0x3f
je 0x10055e80
cmp eax, 0x7b
je 0x10055e80
cmp eax, 0x7d
jne 0x10055dfa
test dword [esi + 0x50], 0x10000000
je 0x10055e92
jmp 0x10055e0c
cmp eax, 0x5d
jne 0x10055e0c
test dword [esi + 0x50], 0x10000000
je 0x10055e9b
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10055100
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10055e53
cmp byte [eax], 0x5c
jne 0x10055e51
inc eax
cmp eax, ecx
je 0x10055e51
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10055e40
mov dl, byte [eax]
cmp dl, 0x28
je 0x10055e4f
cmp dl, 0x29
je 0x10055e4f
test cl, 0x10
jne 0x10055e51
mov al, byte [eax]
cmp al, 0x7b
je 0x10055e4f
cmp al, 0x7d
jne 0x10055e51
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10058650
mov ecx, esi
call fcn.10058200
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10055e77
cmp eax, 0x7c
jne 0x10055a93
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10057640
push 5
mov ecx, esi
call fcn.10057640
push 6
mov ecx, esi
call fcn.10057640
push 4
mov ecx, esi
call fcn.10057640
int3