Function at 0x1009b790
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1009baab
nop dword [eax]
cmp eax, 0x7c
je 0x1009baab
cmp eax, 0x29
jne 0x1009b81d
cmp dword [esi + 0x10], 0
jne 0x1009baab
test dword [esi + 0x50], 0x10000000
je 0x1009bac9
cmp eax, 0x5d
jne 0x1009b7e7
test dword [esi + 0x50], 0x10000000
je 0x1009babb
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1009c430
mov ecx, esi
call fcn.1009b730
mov eax, dword [esi + 0x4c]
xor ebx, ebx
or edi, 0xffffffff
cmp eax, 0x2a
je 0x1009ba62
cmp eax, 0x2b
jne 0x1009b9e6
lea ebx, [edi + 2]
jmp 0x1009ba62
cmp eax, 0x2e
jne 0x1009b82e
lea ecx, [esi + 0x24]
push 5
call fcn.1009bae0
jmp 0x1009b7f4
cmp eax, 0x5c
jne 0x1009b88b
mov ecx, esi
call fcn.1009b730
test byte [esi + 0x50], 0x80
je 0x1009b87f
cmp byte [esi + 0x48], 0x62
jne 0x1009b85c
lea ecx, [esi + 0x24]
push 4
call fcn.1009bae0
mov ecx, esi
call fcn.1009b730
jmp 0x1009ba9d
cmp byte [esi + 0x48], 0x42
jne 0x1009b87f
lea ecx, [esi + 0x24]
push 4
call fcn.1009bae0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1009b730
jmp 0x1009ba9d
mov ecx, esi
call fcn.1009c180
jmp 0x1009b7fb
cmp eax, 0x5b
jne 0x1009b93e
mov ecx, esi
call fcn.1009b730
lea ecx, [esi + 0x24]
call fcn.1009cdb0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1009b8bc
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1009b730
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1009b928
cmp eax, 0x5d
jne 0x1009b928
test dword [esi + 0x2c], 0x100
mov bl, al
je 0x1009b8e6
mov eax, dword [esi + 0x30]
push 0x5d
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov bl, al
mov edi, dword [esi + 0x28]
mov ecx, dword [edi + 0x18]
test ecx, ecx
jne 0x1009b90c
push 0x20
call fcn.101157fb
xorps xmm0, xmm0
mov dword [ebp - 8], eax
add esp, 4
mov ecx, eax
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [edi + 0x18], eax
movzx edx, bl
mov eax, edx
and edx, 7
shr eax, 3
add ecx, eax
movzx eax, byte [ecx]
bts eax, edx
mov byte [ecx], al
mov ecx, esi
call fcn.1009b730
mov ecx, esi
call fcn.1009c870
cmp dword [esi + 0x4c], 0x5d
jne 0x1009babb
jmp 0x1009b7f4
cmp eax, 0x28
jne 0x1009b971
mov ecx, esi
call fcn.1009b730
mov ecx, esi
call fcn.1009c320
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1009bac9
mov ecx, esi
call fcn.1009b730
test bl, bl
je 0x1009ba9d
jmp 0x1009b7fb
cmp eax, 0x5e
jne 0x1009b98c
lea ecx, [esi + 0x24]
push 2
call fcn.1009bae0
mov ecx, esi
call fcn.1009b730
jmp 0x1009ba9d
cmp eax, 0x24
jne 0x1009b9a7
lea ecx, [esi + 0x24]
push 3
call fcn.1009bae0
mov ecx, esi
call fcn.1009b730
jmp 0x1009ba9d
cmp eax, 0x2a
je 0x1009bab4
cmp eax, 0x2b
je 0x1009bab4
cmp eax, 0x3f
je 0x1009bab4
cmp eax, 0x7b
je 0x1009bab4
cmp eax, 0x7d
jne 0x1009b7d5
test dword [esi + 0x50], 0x10000000
je 0x1009bac2
jmp 0x1009b7e7
cmp eax, 0x3f
jne 0x1009b9f0
lea edi, [eax - 0x3e]
jmp 0x1009ba62
cmp eax, 0x7b
jne 0x1009ba9d
mov ecx, esi
call fcn.1009b730
push SysReAllocString
push 0xa
mov ecx, esi
call fcn.1009d1b0
cmp eax, 0x7fffffff
je 0x1009bad0
mov eax, dword [esi + 0x4c]
mov ebx, dword [esi + 0x44]
cmp eax, 0x2c
je 0x1009ba28
mov edi, ebx
jmp 0x1009ba54
mov ecx, esi
call fcn.1009b730
cmp dword [esi + 0x4c], 0x7d
je 0x1009ba62
push SysReAllocString
push 0xa
mov ecx, esi
call fcn.1009d1b0
cmp eax, 0x7fffffff
je 0x1009bad0
mov edi, dword [esi + 0x44]
mov eax, dword [esi + 0x4c]
cmp eax, 0x7d
jne 0x1009bad0
cmp edi, 0xffffffff
je 0x1009ba62
cmp edi, ebx
jl 0x1009bad0
mov eax, dword [esi + 0x28]
mov ecx, esi
or dword [eax + 8], 4
call fcn.1009b730
test dword [esi + 0x50], 0x400
je 0x1009ba8c
cmp dword [esi + 0x4c], 0x3f
jne 0x1009ba8c
mov ecx, esi
mov byte [ebp - 4], 0
call fcn.1009b730
jmp 0x1009ba90
mov byte [ebp - 4], 1
push dword [ebp - 4]
lea ecx, [esi + 0x24]
push edi
push ebx
call fcn.1009ce60
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1009b7b0
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.1009a7a0
push 4
call fcn.1009a7a0
push 6
call fcn.1009a7a0
push 5
call fcn.1009a7a0
push 7
call fcn.1009a7a0
int3