Function at 0x1000f090
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 0x1000f499
cmp eax, 0x7c
je 0x1000f499
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x1000f0d4
cmp dword [esi + 0x10], 0
jne 0x1000f497
test dword [esi + 0x50], 0x10000000
je 0x1000f4a9
jmp 0x1000f42c
cmp eax, 0x2e
jne 0x1000f134
push 5
lea ecx, [esi + 0x24]
call fcn.100116c0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000f473
cmp byte [eax], 0x5c
jne 0x1000f12c
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000f12c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000f116
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1000f129
cmp byte [ebp - 1], 0x29
je 0x1000f129
test bl, 0x10
jne 0x1000f12c
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000f129
cmp dl, 0x7d
jne 0x1000f12c
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x1000f473
cmp eax, 0x5c
jne 0x1000f27f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000f185
cmp byte [eax], 0x5c
jne 0x1000f182
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000f182
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000f16c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1000f17f
cmp byte [ebp - 1], 0x29
je 0x1000f17f
test bl, 0x10
jne 0x1000f182
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000f17f
cmp dl, 0x7d
jne 0x1000f182
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10011be0
test byte [esi + 0x50], 0x80
je 0x1000f273
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1000f1f9
push 4
lea ecx, [esi + 0x24]
call fcn.100116c0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000f1ed
cmp byte [eax], 0x5c
jne 0x1000f1ea
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000f1ea
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000f1d4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1000f1e7
cmp bl, 0x29
je 0x1000f1e7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000f1ea
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000f1e7
cmp dl, 0x7d
jne 0x1000f1ea
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10011be0
jmp 0x1000f484
cmp al, 0x42
jne 0x1000f273
push 4
lea ecx, [esi + 0x24]
call fcn.100116c0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x1000f267
cmp byte [eax], 0x5c
jne 0x1000f264
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000f262
test byte [esi + 0x50], 8
jne 0x1000f23a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000f250
cmp cl, 0x29
je 0x1000f250
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000f262
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000f250
mov edx, ecx
cmp bl, 0x7d
jne 0x1000f262
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.10011be0
jmp 0x1000f484
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10011be0
jmp 0x1000f484
mov ecx, esi
call fcn.1000f4d0
jmp 0x1000f47a
cmp eax, 0x5b
jne 0x1000f338
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000f2d5
cmp byte [eax], 0x5c
jne 0x1000f2d2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1000f2d0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000f2b6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1000f2cb
cmp cl, 0x29
je 0x1000f2cb
mov ecx, eax
test bl, 0x10
jne 0x1000f2d0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1000f2cb
mov edx, ecx
cmp bl, 0x7d
jne 0x1000f2d0
lea eax, [edx + 1]
jmp 0x1000f2d2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10011be0
lea ecx, [esi + 0x24]
call fcn.1000e8f0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1000f2fd
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.10011730
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1000f31b
cmp eax, 0x5d
jne 0x1000f31b
push eax
lea ecx, [esi + 0x24]
call fcn.1000e880
mov ecx, esi
call fcn.10011730
mov ecx, esi
call fcn.1000fea0
cmp dword [esi + 0x4c], 0x5d
jne 0x1000f4bb
mov ecx, esi
call fcn.10011730
jmp 0x1000f47a
cmp eax, 0x28
jne 0x1000f3b7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000f389
cmp byte [eax], 0x5c
jne 0x1000f386
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000f384
test byte [esi + 0x50], 8
jne 0x1000f369
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000f37f
cmp cl, 0x29
je 0x1000f37f
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000f384
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000f37f
mov edx, ecx
cmp bl, 0x7d
jne 0x1000f384
lea eax, [edx + 1]
jmp 0x1000f386
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10011be0
mov ecx, esi
call fcn.10011de0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1000f4a9
mov ecx, esi
call fcn.10011730
test bl, bl
je 0x1000f484
jmp 0x1000f47a
cmp eax, 0x5e
jne 0x1000f3cb
push 2
lea ecx, [esi + 0x24]
call fcn.100116c0
jmp 0x1000f20e
cmp eax, 0x24
jne 0x1000f3e2
push 3
lea ecx, [esi + 0x24]
call fcn.100116c0
lea edi, [esi + 8]
jmp 0x1000f20e
cmp eax, 0x2a
je 0x1000f4a0
cmp eax, 0x2b
je 0x1000f4a0
cmp eax, 0x3f
je 0x1000f4a0
cmp eax, 0x7b
je 0x1000f4a0
cmp eax, 0x7d
jne 0x1000f41a
test dword [esi + 0x50], 0x10000000
je 0x1000f4b2
jmp 0x1000f42c
cmp eax, 0x5d
jne 0x1000f42c
test dword [esi + 0x50], 0x10000000
je 0x1000f4bb
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1000e6d0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1000f473
cmp byte [eax], 0x5c
jne 0x1000f471
inc eax
cmp eax, ecx
je 0x1000f471
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000f460
mov dl, byte [eax]
cmp dl, 0x28
je 0x1000f46f
cmp dl, 0x29
je 0x1000f46f
test cl, 0x10
jne 0x1000f471
mov al, byte [eax]
cmp al, 0x7b
je 0x1000f46f
cmp al, 0x7d
jne 0x1000f471
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10011be0
mov ecx, esi
call fcn.10011790
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x1000f497
cmp eax, 0x7c
jne 0x1000f0b3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10010c00
push 5
mov ecx, esi
call fcn.10010c00
push 6
mov ecx, esi
call fcn.10010c00
push 4
mov ecx, esi
call fcn.10010c00
int3