Function at 0x10012960
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xe8
mov ah, byte [ebp + 0x14]
mov byte [esp], dl
push esi
mov esi, ecx
mov dword [esp + 0x38], esi
push edi
cmp ah, 0x63
jne 0x100129c8
nop
cmp dl, 0x7f
ja 0x10012f15
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x80], eax
lea eax, [esp + 0xc]
push 1
push eax
push dword [ebp + 0x20]
mov byte [ebp + 0x17], 0
movups xmm0, xmmword [ebp + 0xc]
mov byte [esp + 0x18], dl
lea edx, [esp + 0x7c]
push dword [ebp + 8]
movups xmmword [esp + 0x80], xmm0
call fcn.10011d20
add esp, 0x10
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [ebp + 0x16]
mov esi, 2
test al, al
movzx ecx, al
movsx eax, ah
cmove ecx, esi
add eax, 0xffffffbe
mov dword [esp + 0x1c], ecx
mov esi, 0xa
mov byte [ebp + 0x16], cl
cmp eax, 0x36
ja case.0x100129f6.67
movzx eax, byte [eax + 0x10012f38]
jmp dword [eax*4 + 0x10012f28]
lea edi, [esp + 0x70]
mov al, dl
dec edi
and al, 1
add al, 0x30
shr dl, 1
mov byte [edi], al
jne case.0x10012a56.66
jmp 0x10012af3
lea edi, [esp + 0x70]
movzx eax, dl
dec edi
and eax, 0xf
shr dl, 4
mov al, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyzinf]
mov byte [edi], al
test dl, dl
jne case.0x10012a56.71
jmp 0x10012af3
lea edi, [esp + 0x70]
mov al, dl
dec edi
and al, 7
shr dl, 3
add al, 0x30
mov byte [edi], al
test dl, dl
jne case.0x10012a56.69
jmp 0x10012af3
movzx eax, byte [esi + 0x10012f8e]
lea edi, [esp + 0x70]
jmp dword [eax*4 + 0x10012f70]
movzx ecx, dl
dec edi
xor edx, edx
mov eax, ecx
div esi
mov eax, 0xcccccccd
add dl, 0x30
mov byte [edi], dl
mul ecx
shr edx, 3
test dl, dl
jne case.0x10012a56.70
jmp 0x10012af3
mov al, dl
dec edi
and al, 3
shr dl, 2
add al, 0x30
mov byte [edi], al
test dl, dl
jne case.0x10012a56.68
jmp 0x10012af3
movzx eax, dl
dec edi
and eax, 0x1f
shr dl, 5
mov al, byte [eax + str.0123456789abcdefghijklmnopqrstuvwxyzinf]
mov byte [edi], al
test dl, dl
jne case.0x10012a56.72
jmp 0x10012af3
movzx ecx, dl
dec edi
xor edx, edx
mov eax, ecx
div esi
mov eax, ecx
add dl, 0x30
mov byte [edi], dl
xor edx, edx
div esi
mov dl, al
test dl, dl
jne case.0x10012a56.67
jmp 0x10012af3
mov ecx, esi
nop
movzx esi, dl
dec edi
xor edx, edx
mov eax, esi
div ecx
mov eax, esi
mov cl, byte [edx + str.0123456789abcdefghijklmnopqrstuvwxyzinf]
xor edx, edx
mov byte [edi], cl
mov ecx, 0xa
div ecx
mov dl, al
test dl, dl
jne 0x10012ad0
lea esi, [esp + 0x70]
sub esi, edi
cmp esi, 0x41
jle 0x10012b0f
lea edi, [esp + 0xe9]
mov dword [esp + 0x2c], 0x84
jmp 0x10012b32
push esi
lea eax, [esp + 0xac]
push edi
push eax
call fcn.100afbe0
lea edi, [esp + 0xb4]
mov dword [esp + 0x38], 0
add esp, 0xc
add edi, esi
lea eax, [esp + 0xa8]
mov edx, edi
sub edx, eax
mov dword [esp + 0x38], eax
cmp byte [esp + 0x1c], 2
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
je 0x10012b59
inc edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
mov al, byte ds:[ebp + 0x14]
cmp al, 0x58
jne 0x10012b8f
lea ecx, [esp + 0xa8]
cmp ecx, edi
je 0x10012b8f
nop
mov dl, byte [ecx]
mov al, dl
sub al, 0x61
cmp al, 0x19
ja 0x10012b7f
sub dl, 0x20
mov byte [ecx], dl
inc ecx
cmp ecx, edi
jne 0x10012b70
mov edx, dword [esp + 0x14]
mov al, byte [ebp + 0x14]
mov dword [esp + 0x18], edx
cmp byte [ebp + 0x17], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
je 0x10012c18
movsx eax, al
add eax, 0xffffffbe
cmp eax, 0x36
ja case.0x10012bb7.67
movzx eax, byte [eax + 0x10012fc8]
jmp dword [eax*4 + 0x10012fb0]
mov ecx, 0x102f37f4
mov eax, 2
jmp 0x10012c06
mov ecx, 0x102f37f8
mov eax, 2
jmp 0x10012c06
mov ecx, 0x102f3878
mov eax, 2
jmp 0x10012c06
mov ecx, 0x102f37fc
mov eax, 2
jmp 0x10012c06
cmp byte [esp + 8], 0
je case.0x10012bb7.67
mov ecx, 0x102f3800
mov eax, 1
jmp 0x10012c06
xor ecx, ecx
xor eax, eax
add edx, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
cmp byte [ebp + 0x18], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x40], xmm0
mov dword [esp + 0x34], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], 0
je 0x10012d46
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x10012c5e
mov esi, dword [eax + 4]
mov ecx, esi
mov dword [esp + 0x24], esi
mov eax, dword [esi]
call dword [eax + 4]
jmp 0x10012c6e
push 1
call fcn.1008394c
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
lea eax, [esp + 0x20]
push eax
call fcn.1001fde0
add esp, 4
lea ecx, [esp + 0x70]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x14]
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x10012cbd
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012cb3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10012f1f
push ecx
push edx
call fcn.1009aaf8
add esp, 8
movaps xmm0, xmmword [esp + 0x70]
lea ecx, [esp + 0x70]
movaps xmmword [esp + 0x40], xmm0
movq xmm0, qword [esp + 0x80]
movq qword [esp + 0x50], xmm0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
mov byte [esp + 0x70], 0
call fcn.10002cc0
test esi, esi
je 0x10012d13
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x10012d13
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
cmp dword [esp + 0x54], 0xf
lea eax, [esp + 0x40]
push dword [esp + 0x50]
cmova eax, dword [esp + 0x44]
mov ecx, edi
sub ecx, dword [esp + 0x3c]
push eax
call fcn.1001b910
mov edx, dword [esp + 0x1c]
add esp, 8
add edx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
cmp byte [ebp + 0x19], 0
mov al, byte [ebp + 0x15]
je 0x10012d57
test al, al
jne 0x10012d57
mov cl, 1
jmp 0x10012d59
xor cl, cl
mov byte [esp + 0x13], cl
lea esi, [ebp + 0xc]
mov dword [esp + 0x74], esi
lea esi, [esp + 8]
mov dword [esp + 0x78], esi
lea esi, [esp + 0x28]
mov dword [esp + 0x7c], esi
lea esi, [esp + 0x13]
mov dword [esp + 0x80], esi
lea esi, [esp + 0x14]
mov dword [esp + 0x84], esi
lea esi, [esp + 0x34]
mov dword [esp + 0x88], esi
lea esi, [esp + 0x38]
mov dword [esp + 0x8c], esi
lea esi, [esp + 0x40]
mov dword [esp + 0x90], esi
lea esi, [ebp + 0x20]
mov dword [esp + 0x70], edi
mov dword [esp + 0x94], esi
test cl, cl
je 0x10012e10
push dword [ebp + 8]
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x74]
push esi
call fcn.10013000
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x10012e08
mov edx, dword ds:[esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012dfc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10012f10
push ecx
push edx
call fcn.1009aaf8
add esp, 8
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
xor esi, esi
mov dword [esp + 0x1c], esi
xor edi, edi
movzx esi, al
test al, al
mov eax, esi
mov dword [esp + 0x20], esi
mov esi, 2
cmove eax, esi
mov esi, edi
cmp edx, dword [ebp + 0xc]
jge 0x10012e62
movzx eax, al
sub eax, 1
je 0x10012e99
nop dword [eax]
sub eax, 1
je 0x10012e92
sub eax, 1
jne 0x10012e62
mov esi, dword [ebp + 0xc]
mov eax, esi
sub eax, edx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
sub esi, edi
sub esi, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
movzx eax, byte [ebp + 0x1a]
test edi, edi
jle 0x10012ea2
lea esi, [ebp + 0x1b]
add esi, eax
mov dword [esp + 0x20], esi
push ecx
mov edx, esi
lea ecx, [ebp + 0x1b]
call fcn.1000c9c0
dec edi
add esp, 4
mov ecx, edx
test edi, edi
jg 0x10012e73
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
jmp 0x10012ea7
mov edi, dword [ebp + 0xc]
sub edi, edx
jmp 0x10012e62
mov esi, dword [ebp + 0xc]
movzx eax, byte [ebp + 0x1a]
sub esi, edx
lea edi, [ebp + 0x1b]
add edi, eax
push ecx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x78]
call fcn.10013000
mov edx, dword [eax]
test esi, esi
jle 0x10012ed3
nop dword [eax]
push edx
mov edx, edi
lea ecx, [ebp + 0x1b]
call fcn.1000c9c0
dec esi
add esp, 4
test esi, esi
jg 0x10012ec0
mov esi, dword ds:[esp + 0x3c]
mov ecx, dword [esp + 0x54]
mov dword [esi], edx
cmp ecx, 0xf
jbe 0x10012e08
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012dfc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10012dfc
call fcn.100bccb8
mov ecx, str.integral_cannot_be_stored_in_char
call fcn.10020750
nop
call fcn.100bccb8
nop dword [eax]
std
sub dword [ecx], eax
adc byte [ebx], dl
sub al, byte [ecx]
adc byte [edx], dh
sub al, byte [ecx]
adc byte [ebx + 0x2a], cl
add dword [eax], edx
add byte [ebx], al
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add dword [ebx], eax
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add byte [ebx], al
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [edx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add dword [eax + case.0x10012a56.66], edx
mov al, 42
add dword [eax], edx
sub byte [edx], 1
adc byte [esi], dh
sub al, byte [ecx]
adc byte [eax + 0x2a], ah
add dword [eax], edx
pop ss
sub al, byte [ecx]
adc byte [edx - 0x32effed6], dl
sub al, byte [ecx]
adc byte [eax], al
add dword [edx], eax
add dword [ecx], eax
add dword [ebx], eax
add dword [edi + eax], eax
pop es
pop es
pop es
pop es
add eax, 0x7070707
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
push es
nop
retf 0x12b