Function at 0x10012980
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 0x100129e8
nop
cmp dl, 0x7f
ja 0x10012f35
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.10011d40
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.0x10012a16.67
movzx eax, byte [eax + 0x10012f58]
jmp dword [eax*4 + 0x10012f48]
lea edi, [esp + 0x70]
mov al, dl
dec edi
and al, 1
add al, 0x30
shr dl, 1
mov byte [edi], al
jne case.0x10012a76.66
jmp 0x10012b13
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.0x10012a76.71
jmp 0x10012b13
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.0x10012a76.69
jmp 0x10012b13
movzx eax, byte [esi + 0x10012fae]
lea edi, [esp + 0x70]
jmp dword [eax*4 + 0x10012f90]
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.0x10012a76.70
jmp 0x10012b13
mov al, dl
dec edi
and al, 3
shr dl, 2
add al, 0x30
mov byte [edi], al
test dl, dl
jne case.0x10012a76.68
jmp 0x10012b13
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.0x10012a76.72
jmp 0x10012b13
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.0x10012a76.67
jmp 0x10012b13
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 0x10012af0
lea esi, [esp + 0x70]
sub esi, edi
cmp esi, 0x41
jle 0x10012b2f
lea edi, [esp + 0xe9]
mov dword [esp + 0x2c], 0x84
jmp 0x10012b52
push esi
lea eax, [esp + 0xac]
push edi
push eax
call fcn.100ae310
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 0x10012b79
inc edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
mov al, byte ds:[ebp + 0x14]
cmp al, 0x58
jne 0x10012baf
lea ecx, [esp + 0xa8]
cmp ecx, edi
je 0x10012baf
nop
mov dl, byte [ecx]
mov al, dl
sub al, 0x61
cmp al, 0x19
ja 0x10012b9f
sub dl, 0x20
mov byte [ecx], dl
inc ecx
cmp ecx, edi
jne 0x10012b90
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 0x10012c38
movsx eax, al
add eax, 0xffffffbe
cmp eax, 0x36
ja case.0x10012bd7.67
movzx eax, byte [eax + 0x10012fe8]
jmp dword [eax*4 + 0x10012fd0]
mov ecx, 0x102f07a4
mov eax, 2
jmp 0x10012c26
mov ecx, 0x102f07a8
mov eax, 2
jmp 0x10012c26
mov ecx, 0x102f0828
mov eax, 2
jmp 0x10012c26
mov ecx, 0x102f07ac
mov eax, 2
jmp 0x10012c26
cmp byte [esp + 8], 0
je case.0x10012bd7.67
mov ecx, 0x102f07b0
mov eax, 1
jmp 0x10012c26
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 0x10012d66
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x10012c7e
mov esi, dword [eax + 4]
mov ecx, esi
mov dword [esp + 0x24], esi
mov eax, dword [esi]
call dword [eax + 4]
jmp 0x10012c8e
push 1
call fcn.1008219c
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
lea eax, [esp + 0x20]
push eax
call fcn.1001fd40
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 0x10012cdd
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012cd3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10012f3f
push ecx
push edx
call fcn.100992e0
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.10002ce0
test esi, esi
je 0x10012d33
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x10012d33
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.1001b870
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 0x10012d77
test al, al
jne 0x10012d77
mov cl, 1
jmp 0x10012d79
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 0x10012e30
push dword [ebp + 8]
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x74]
push esi
call fcn.10013020
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x10012e28
mov edx, dword ds:[esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012e1c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10012f30
push ecx
push edx
call fcn.100992e0
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 0x10012e82
movzx eax, al
sub eax, 1
je 0x10012eb9
nop dword [eax]
sub eax, 1
je 0x10012eb2
sub eax, 1
jne 0x10012e82
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 0x10012ec2
lea esi, [ebp + 0x1b]
add esi, eax
mov dword [esp + 0x20], esi
push ecx
mov edx, esi
lea ecx, [ebp + 0x1b]
call fcn.1000c9e0
dec edi
add esp, 4
mov ecx, edx
test edi, edi
jg 0x10012e93
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
jmp 0x10012ec7
mov edi, dword [ebp + 0xc]
sub edi, edx
jmp 0x10012e82
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.10013020
mov edx, dword [eax]
test esi, esi
jle 0x10012ef3
nop dword [eax]
push edx
mov edx, edi
lea ecx, [ebp + 0x1b]
call fcn.1000c9e0
dec esi
add esp, 4
test esi, esi
jg 0x10012ee0
mov esi, dword ds:[esp + 0x3c]
mov ecx, dword [esp + 0x54]
mov dword [esi], edx
cmp ecx, 0xf
jbe 0x10012e28
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012e1c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10012e1c
call fcn.100bb498
mov ecx, str.integral_cannot_be_stored_in_char
call fcn.100206d0
nop
call fcn.100bb498
nop dword [eax]
sbb eax, 0x3310012a
sub al, byte [ecx]
adc byte [edx + 0x2a], dl
add dword [eax], edx
imul ebp, dword [edx], 1
adc byte [eax], 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 eax, dword [ecx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [eax]
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 al, byte [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ecx]
nop
and dword [edx], ebp
add dword [eax], edx
shr byte [edx], 1
add dword [eax], edx
mov al, byte [0x5610012a]
sub al, byte [ecx]
adc byte [eax + 0x3710012a], al
sub al, byte [ecx]
adc byte [edx - 0x12effed6], dh
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
ljmp 0x12c