Function at 0x1005fda0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x100601a7
cmp eax, 0x7c
je 0x100601a7
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x1005fde4
cmp dword [esi + 0x10], 0
jne 0x100601a7
test dword [esi + 0x50], 0x10000000
je 0x100601b7
jmp 0x1006013c
cmp eax, 0x2e
jne 0x1005fe44
push 5
lea ecx, [esi + 0x24]
call fcn.10060210
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10060183
cmp byte [eax], 0x5c
jne 0x1005fe3c
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005fe3c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1005fe26
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1005fe39
cmp byte [ebp - 1], 0x29
je 0x1005fe39
test bl, 0x10
jne 0x1005fe3c
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005fe39
cmp dl, 0x7d
jne 0x1005fe3c
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x10060183
cmp eax, 0x5c
jne 0x1005ff8f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005fe95
cmp byte [eax], 0x5c
jne 0x1005fe92
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005fe92
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1005fe7c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1005fe8f
cmp byte [ebp - 1], 0x29
je 0x1005fe8f
test bl, 0x10
jne 0x1005fe92
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005fe8f
cmp dl, 0x7d
jne 0x1005fe92
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005f150
test byte [esi + 0x50], 0x80
je 0x1005ff83
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1005ff09
push 4
lea ecx, [esi + 0x24]
call fcn.10060210
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005fefd
cmp byte [eax], 0x5c
jne 0x1005fefa
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005fefa
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005fee4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1005fef7
cmp bl, 0x29
je 0x1005fef7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005fefa
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005fef7
cmp dl, 0x7d
jne 0x1005fefa
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005f150
jmp 0x10060194
cmp al, 0x42
jne 0x1005ff83
push 4
lea ecx, [esi + 0x24]
call fcn.10060210
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x1005ff77
cmp byte [eax], 0x5c
jne 0x1005ff74
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1005ff72
test byte [esi + 0x50], 8
jne 0x1005ff4a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1005ff60
cmp cl, 0x29
je 0x1005ff60
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1005ff72
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1005ff60
mov edx, ecx
cmp bl, 0x7d
jne 0x1005ff72
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.1005f150
jmp 0x10060194
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005f150
jmp 0x10060194
mov ecx, esi
call fcn.10061260
jmp 0x1006018a
cmp eax, 0x5b
jne 0x10060048
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1005ffe5
cmp byte [eax], 0x5c
jne 0x1005ffe2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1005ffe0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1005ffc6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1005ffdb
cmp cl, 0x29
je 0x1005ffdb
mov ecx, eax
test bl, 0x10
jne 0x1005ffe0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1005ffdb
mov edx, ecx
cmp bl, 0x7d
jne 0x1005ffe0
lea eax, [edx + 1]
jmp 0x1005ffe2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005f150
lea ecx, [esi + 0x24]
call fcn.10062460
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1006000d
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1005fd40
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1006002b
cmp eax, 0x5d
jne 0x1006002b
push eax
lea ecx, [esi + 0x24]
call fcn.100624f0
mov ecx, esi
call fcn.1005fd40
mov ecx, esi
call fcn.10061fd0
cmp dword [esi + 0x4c], 0x5d
jne 0x100601c5
mov ecx, esi
call fcn.1005fd40
jmp 0x1006018a
cmp eax, 0x28
jne 0x100600c7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10060099
cmp byte [eax], 0x5c
jne 0x10060096
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10060094
test byte [esi + 0x50], 8
jne 0x10060079
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1006008f
cmp cl, 0x29
je 0x1006008f
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10060094
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1006008f
mov edx, ecx
cmp bl, 0x7d
jne 0x10060094
lea eax, [edx + 1]
jmp 0x10060096
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005f150
mov ecx, esi
call fcn.100613b0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x100601b7
mov ecx, esi
call fcn.1005fd40
test bl, bl
je 0x10060194
jmp 0x1006018a
cmp eax, 0x5e
jne 0x100600db
push 2
lea ecx, [esi + 0x24]
call fcn.10060210
jmp 0x1005ff1e
cmp eax, 0x24
jne 0x100600f2
push 3
lea ecx, [esi + 0x24]
call fcn.10060210
lea edi, [esi + 8]
jmp 0x1005ff1e
cmp eax, 0x2a
je 0x100601b0
cmp eax, 0x2b
je 0x100601b0
cmp eax, 0x3f
je 0x100601b0
cmp eax, 0x7b
je 0x100601b0
cmp eax, 0x7d
jne 0x1006012a
test dword [esi + 0x50], 0x10000000
je 0x100601be
jmp 0x1006013c
cmp eax, 0x5d
jne 0x1006013c
test dword [esi + 0x50], 0x10000000
je 0x100601c5
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10061630
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10060183
cmp byte [eax], 0x5c
jne 0x10060181
inc eax
cmp eax, ecx
je 0x10060181
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10060170
mov dl, byte [eax]
cmp dl, 0x28
je 0x1006017f
cmp dl, 0x29
je 0x1006017f
test cl, 0x10
jne 0x10060181
mov al, byte [eax]
cmp al, 0x7b
je 0x1006017f
cmp al, 0x7d
jne 0x10060181
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1005f150
mov ecx, esi
call fcn.100614e0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x100601a7
cmp eax, 0x7c
jne 0x1005fdc3
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.1005f140
push 5
call fcn.1005f140
push 6
call fcn.1005f140
push 4
call fcn.1005f140
int3