Function at 0x10010190
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 0x10010599
cmp eax, 0x7c
je 0x10010599
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x100101d4
cmp dword [esi + 0x10], 0
jne 0x10010597
test dword [esi + 0x50], 0x10000000
je 0x100105a9
jmp 0x1001052c
cmp eax, 0x2e
jne 0x10010234
push 5
lea ecx, [esi + 0x24]
call fcn.100127c0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10010573
cmp byte [eax], 0x5c
jne 0x1001022c
lea edx, [eax + 1]
cmp edx, ecx
je 0x1001022c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10010216
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x10010229
cmp byte [ebp - 1], 0x29
je 0x10010229
test bl, 0x10
jne 0x1001022c
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10010229
cmp dl, 0x7d
jne 0x1001022c
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x10010573
cmp eax, 0x5c
jne 0x1001037f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10010285
cmp byte [eax], 0x5c
jne 0x10010282
lea edx, [eax + 1]
cmp edx, ecx
je 0x10010282
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1001026c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1001027f
cmp byte [ebp - 1], 0x29
je 0x1001027f
test bl, 0x10
jne 0x10010282
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1001027f
cmp dl, 0x7d
jne 0x10010282
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012ce0
test byte [esi + 0x50], 0x80
je 0x10010373
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x100102f9
push 4
lea ecx, [esi + 0x24]
call fcn.100127c0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100102ed
cmp byte [eax], 0x5c
jne 0x100102ea
lea edx, [eax + 1]
cmp edx, ecx
je 0x100102ea
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100102d4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x100102e7
cmp bl, 0x29
je 0x100102e7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100102ea
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100102e7
cmp dl, 0x7d
jne 0x100102ea
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012ce0
jmp 0x10010584
cmp al, 0x42
jne 0x10010373
push 4
lea ecx, [esi + 0x24]
call fcn.100127c0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10010367
cmp byte [eax], 0x5c
jne 0x10010364
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10010362
test byte [esi + 0x50], 8
jne 0x1001033a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x10010350
cmp cl, 0x29
je 0x10010350
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10010362
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x10010350
mov edx, ecx
cmp bl, 0x7d
jne 0x10010362
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.10012ce0
jmp 0x10010584
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012ce0
jmp 0x10010584
mov ecx, esi
call fcn.100105d0
jmp 0x1001057a
cmp eax, 0x5b
jne 0x10010438
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100103d5
cmp byte [eax], 0x5c
jne 0x100103d2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x100103d0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100103b6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x100103cb
cmp cl, 0x29
je 0x100103cb
mov ecx, eax
test bl, 0x10
jne 0x100103d0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x100103cb
mov edx, ecx
cmp bl, 0x7d
jne 0x100103d0
lea eax, [edx + 1]
jmp 0x100103d2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012ce0
lea ecx, [esi + 0x24]
call fcn.1000f9f0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x100103fd
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.10012830
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1001041b
cmp eax, 0x5d
jne 0x1001041b
push eax
lea ecx, [esi + 0x24]
call fcn.1000f980
mov ecx, esi
call fcn.10012830
mov ecx, esi
call fcn.10010fa0
cmp dword [esi + 0x4c], 0x5d
jne 0x100105bb
mov ecx, esi
call fcn.10012830
jmp 0x1001057a
cmp eax, 0x28
jne 0x100104b7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10010489
cmp byte [eax], 0x5c
jne 0x10010486
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10010484
test byte [esi + 0x50], 8
jne 0x10010469
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1001047f
cmp cl, 0x29
je 0x1001047f
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10010484
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1001047f
mov edx, ecx
cmp bl, 0x7d
jne 0x10010484
lea eax, [edx + 1]
jmp 0x10010486
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012ce0
mov ecx, esi
call fcn.10012ee0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x100105a9
mov ecx, esi
call fcn.10012830
test bl, bl
je 0x10010584
jmp 0x1001057a
cmp eax, 0x5e
jne 0x100104cb
push 2
lea ecx, [esi + 0x24]
call fcn.100127c0
jmp 0x1001030e
cmp eax, 0x24
jne 0x100104e2
push 3
lea ecx, [esi + 0x24]
call fcn.100127c0
lea edi, [esi + 8]
jmp 0x1001030e
cmp eax, 0x2a
je 0x100105a0
cmp eax, 0x2b
je 0x100105a0
cmp eax, 0x3f
je 0x100105a0
cmp eax, 0x7b
je 0x100105a0
cmp eax, 0x7d
jne 0x1001051a
test dword [esi + 0x50], 0x10000000
je 0x100105b2
jmp 0x1001052c
cmp eax, 0x5d
jne 0x1001052c
test dword [esi + 0x50], 0x10000000
je 0x100105bb
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1000f7d0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10010573
cmp byte [eax], 0x5c
jne 0x10010571
inc eax
cmp eax, ecx
je 0x10010571
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10010560
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001056f
cmp dl, 0x29
je 0x1001056f
test cl, 0x10
jne 0x10010571
mov al, byte [eax]
cmp al, 0x7b
je 0x1001056f
cmp al, 0x7d
jne 0x10010571
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10012ce0
mov ecx, esi
call fcn.10012890
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10010597
cmp eax, 0x7c
jne 0x100101b3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10011d00
push 5
mov ecx, esi
call fcn.10011d00
push 6
mov ecx, esi
call fcn.10011d00
push 4
mov ecx, esi
call fcn.10011d00
int3