Function at 0x10009fa0
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 0x1000a46a
cmp eax, 0x7c
je 0x1000a46a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10009fe4
cmp dword [esi + 0x10], 0
jne 0x1000a468
test dword [esi + 0x50], 0x10000000
je 0x1000a47a
jmp 0x1000a3f4
cmp eax, 0x2e
jne 0x1000a044
push 5
lea ecx, [esi + 0x24]
call fcn.1000c8f0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000a444
cmp word [eax], 0x5c
jne 0x1000a03a
lea edx, [eax + 2]
cmp edx, ecx
je 0x1000a03a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000a023
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x1000a037
cmp edi, 0x29
je 0x1000a037
test bl, 0x10
jne 0x1000a03a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x1000a037
cmp edx, 0x7d
jne 0x1000a03a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x1000a444
cmp eax, 0x5c
jne 0x1000a1a7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000a09c
cmp word [eax], 0x5c
jne 0x1000a097
lea edx, [eax + 2]
cmp edx, ecx
je 0x1000a097
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000a080
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x1000a094
cmp word [ebp - 4], 0x29
je 0x1000a094
test bl, 0x10
jne 0x1000a097
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x1000a094
cmp edx, 0x7d
jne 0x1000a097
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000cef0
test byte [esi + 0x50], 0x80
je 0x1000a19b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x1000a119
push 4
lea ecx, [esi + 0x24]
call fcn.1000c8f0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000a10d
cmp word [eax], 0x5c
jne 0x1000a108
lea edx, [eax + 2]
cmp edx, ecx
je 0x1000a108
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000a0f1
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x1000a105
cmp ebx, 0x29
je 0x1000a105
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000a108
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x1000a105
cmp edx, 0x7d
jne 0x1000a108
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000cef0
jmp 0x1000a455
cmp ecx, 0x42
jne 0x1000a19b
push 4
lea ecx, [esi + 0x24]
call fcn.1000c8f0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x1000a18f
cmp word [eax], 0x5c
jne 0x1000a18a
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x1000a188
test byte [esi + 0x50], 8
jne 0x1000a15d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x1000a174
cmp ecx, 0x29
je 0x1000a174
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000a188
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x1000a174
mov edx, ecx
cmp ebx, 0x7d
jne 0x1000a188
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1000cef0
jmp 0x1000a455
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000cef0
jmp 0x1000a455
mov ecx, esi
call fcn.1000a4a0
jmp 0x1000a44b
cmp eax, 0x5b
jne 0x1000a2b8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000a205
cmp word [eax], 0x5c
jne 0x1000a1fd
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1000a1fb
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000a1e0
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x1000a1f6
cmp ecx, 0x29
je 0x1000a1f6
mov ecx, eax
test bl, 0x10
jne 0x1000a1fb
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x1000a1f6
mov edx, ecx
cmp edi, 0x7d
jne 0x1000a1fb
lea eax, [edx + 2]
jmp 0x1000a1fd
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1000cef0
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.100097d0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1000a284
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000a27a
cmp word [eax], 0x5c
jne 0x1000a272
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1000a270
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000a255
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x1000a26b
cmp ecx, 0x29
je 0x1000a26b
mov ecx, eax
test bl, 0x10
jne 0x1000a270
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x1000a26b
mov edx, ecx
cmp edi, 0x7d
jne 0x1000a270
lea eax, [edx + 2]
jmp 0x1000a272
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1000cef0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1000a2a1
cmp eax, 0x5d
jne 0x1000a2a1
push eax
mov ecx, ebx
call fcn.10009750
mov ecx, esi
call fcn.1000c960
mov ecx, esi
call fcn.1000af20
push 4
push 0x5d
mov ecx, esi
call fcn.1000be20
jmp 0x1000a44b
cmp eax, 0x28
jne 0x1000a336
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000a30e
cmp word [eax], 0x5c
jne 0x1000a309
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x1000a307
test byte [esi + 0x50], 8
jne 0x1000a2eb
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x1000a302
cmp ecx, 0x29
je 0x1000a302
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000a307
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x1000a302
mov edx, ecx
cmp ebx, 0x7d
jne 0x1000a307
lea eax, [edx + 2]
jmp 0x1000a309
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000cef0
mov ecx, esi
call fcn.1000d100
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1000be20
test bl, bl
je 0x1000a455
jmp 0x1000a44b
cmp eax, 0x5e
jne 0x1000a34a
push 2
lea ecx, [esi + 0x24]
call fcn.1000c8f0
jmp 0x1000a12f
cmp eax, 0x24
jne 0x1000a3aa
push 3
lea ecx, [esi + 0x24]
call fcn.1000c8f0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000a39e
cmp word [eax], 0x5c
jne 0x1000a39b
add eax, 2
cmp eax, ecx
je 0x1000a39b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000a386
movzx edx, word [eax]
cmp edx, 0x28
je 0x1000a398
cmp edx, 0x29
je 0x1000a398
test cl, 0x10
jne 0x1000a39b
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1000a398
cmp eax, 0x7d
jne 0x1000a39b
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000cef0
jmp 0x1000a455
cmp eax, 0x2a
je 0x1000a471
cmp eax, 0x2b
je 0x1000a471
cmp eax, 0x3f
je 0x1000a471
cmp eax, 0x7b
je 0x1000a471
cmp eax, 0x7d
jne 0x1000a3e2
test dword [esi + 0x50], 0x10000000
je 0x1000a483
jmp 0x1000a3f4
cmp eax, 0x5d
jne 0x1000a3f4
test dword [esi + 0x50], 0x10000000
je 0x1000a48c
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10009580
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1000a444
cmp word [eax], 0x5c
jne 0x1000a441
add eax, 2
cmp eax, ecx
je 0x1000a441
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000a42c
movzx edx, word [eax]
cmp edx, 0x28
je 0x1000a43e
cmp edx, 0x29
je 0x1000a43e
test cl, 0x10
jne 0x1000a441
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1000a43e
cmp eax, 0x7d
jne 0x1000a441
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000cef0
mov ecx, esi
call fcn.1000c9b0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x1000a468
cmp eax, 0x7c
jne 0x10009fc3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.1000be10
push 5
mov ecx, esi
call fcn.1000be10
push 6
mov ecx, esi
call fcn.1000be10
push 4
mov ecx, esi
call fcn.1000be10
int3