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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov eax, dword [0x1008e00c]
xor eax, ebp
mov dword [esp + 0x78], eax
mov dword [esp + 0x10], ecx
mov ebx, dword [ecx + 0x4c]
test ebx, ebx
mov dword [esp + 0x20], edx
je 0x1001c79b
mov ecx, edx
and ecx, 0xfffff000
xor eax, eax
mov esi, 0xfffff000
mov dword [esp + 4], ebx
mov edi, dword [ebx + 8]
and edi, esi
xor edx, edx
cmp ecx, edi
seta dl
mov edi, 0xffffffff
cmovb edx, edi
lea edi, [edx + 1]
cmp edi, 2
jae 0x1001c1f0
mov eax, ebx
mov ebx, dword [ebx]
test ebx, ebx
jne 0x1001c1ca
jmp 0x1001c203
cmp edx, 1
jne 0x1001ca42
mov ebx, dword [ebx + 4]
and ebx, 0xfffffffe
test ebx, ebx
jne 0x1001c1ca
test eax, eax
jne 0x1001ca44
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
test ebx, ebx
jne 0x1001c26d
push 0x1008e7b8
call dword [0x1008be30]
mov eax, dword [0x1008e7d4]
test eax, eax
je 0x1001c7d0
xor ebx, ebx
xor ecx, ecx
dec ecx
mov esi, dword [eax + 0x14]
xor edx, edx
cmp esi, 0x100000
setb dl
cmova edx, ecx
cmp edx, 0xffffffff
jne 0x1001c256
mov ebx, eax
mov eax, dword [eax]
test eax, eax
jne 0x1001c233
jmp 0x1001c433
test edx, edx
jne 0x1001cfc5
cmp dword [eax + 0x10], 0
jne 0x1001c249
mov ebx, eax
mov edx, esi
jmp 0x1001c43e
xor edx, edx
mov dword [eax + 0x38], edx
lea edi, [ebx + 0x2000]
lea eax, [ebx + 0x28]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x58]
mov esi, dword [esp + 4]
mov dword [ecx], esi
mov dword [ecx + 4], edx
mov dword [esp + 0xc], ebx
nop word cs:[eax + eax]
test ebx, ebx
je 0x1001c7d0
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
lea edi, [eax + 0xfffff]
mov ecx, 0xfff00000
and edi, ecx
mov esi, edi
sub esi, eax
sub edx, esi
add edx, ecx
mov dword [esp + 0xc], edx
mov eax, dword [ebx + 0x18]
mov dword [esp + 4], eax
mov ecx, ebx
call 0xfffd2aa
mov ecx, 0x1008e7d0
mov dword [esp + 8], ebx
mov edx, ebx
call fcn.1003855a
test esi, esi
jne 0x1001cf77
mov esi, dword [esp + 0xc]
test esi, esi
je 0x1001c913
mov ebx, dword [esp + 8]
lea eax, [edi + 0x100000]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], esi
mov eax, dword [esp + 4]
mov dword [ebx + 0x18], eax
mov ecx, ebx
call fcn.10038bfa
mov ecx, 0x1008e7d0
mov edx, ebx
call fcn.1003895a
lock add dword [0x1008e7b4], 0xfff00000
mov eax, 0x1008e7b8
push eax
call dword [0x1008beb0]
push 4
push 0x1000
push 0x100000
push edi
call dword [0x1008bf2c]
test eax, eax
je 0x1001c7db
test edi, edi
je 0x1001c7db
push 0x1008e768
call dword [0x1008be30]
mov eax, dword [0x1008e780]
test eax, eax
je 0x1001cf56
mov ecx, edi
shr ecx, 0x14
mov dword [eax + ecx*4], edi
push 0x1008e768
call dword [0x1008beb0]
mov eax, dword [esp + 0x10]
add dword [eax + 0x24], 0x100000
mov dword [edi], eax
xor eax, eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x24], 0x20
mov dword [edi + 0x30], 0xfd024
mov eax, 0x60
nop dword [eax]
mov dword [edi + eax - 0x24], 0x24
mov dword [edi + eax - 0x18], 0x24
mov dword [edi + eax - 0xc], 0x24
cmp eax, 0xc00
je 0x1001c575
mov dword [edi + eax], 0x24
add eax, 0x30
jmp 0x1001c54a
mov dword [edi + 0xc00], 0xfd024
mov dword [edi + 0xc0c], 0x20
lea ecx, [edi + 0x1000]
mov eax, ecx
and eax, 0xfffff
mov ebx, 0x100000
sub ebx, eax
mov esi, 0xff000
cmp ebx, esi
cmovae ebx, esi
push 0x4000
push ebx
mov dword [esp + 0x10], ecx
push ecx
call dword [0x1008bf30]
test eax, eax
je 0x1001cf41
mov ecx, dword [esp + 8]
add ecx, ebx
sub esi, ebx
mov eax, 0x100000
cmp esi, eax
mov ebx, 0x100000
cmovb ebx, esi
test esi, esi
jne 0x1001c5a7
mov eax, dword [esp + 0x10]
add dword [eax + 0x28], 2
lea ecx, [edi + 0x28]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 0x4c]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], 0
test ecx, ecx
je 0x1001c950
xor esi, esi
lea ebx, [esp + 0x58]
nop dword [eax]
mov edx, ebx
mov dword [esp + 8], edx
mov ebx, dword [ecx]
test ebx, ebx
je 0x1001c629
mov eax, dword [ebx + 4]
test al, 1
je 0x1001c629
mov edx, dword [ebx]
test edx, edx
je 0x1001c629
test byte [edx + 4], 1
jne 0x1001c68b
mov ebx, ecx
mov eax, dword [edi + 0x30]
mov edx, eax
and edx, 0xfffff000
mov esi, dword [ebx + 8]
mov ecx, 0xfffff000
and esi, ecx
xor ecx, ecx
cmp edx, esi
seta cl
mov edx, 0xffffffff
cmovb ecx, edx
cmp ecx, 0xffffffff
jne 0x1001c668
mov ecx, dword [ebx]
mov eax, 0xffffffff
mov esi, dword [esp + 8]
test ecx, ecx
jne 0x1001c60a
jmp 0x1001c754
test ecx, ecx
jne 0x1001c6c5
test al, 0x10
mov ecx, 0
cmove ecx, dword [esp + 0xc]
xor eax, eax
cmp ecx, ebx
seta cl
jb 0x1001c654
mov al, cl
mov ecx, dword [ebx + 4]
and ecx, 0xfffffffe
jmp 0x1001c65b
mov dword [esp + 4], esi
and eax, 0xfffffffe
mov dword [ecx], eax
mov edx, ecx
and edx, 0xfffffffe
mov eax, dword [ebx]
mov esi, dword [ebx + 4]
and esi, 1
or esi, edx
mov dword [ebx + 4], esi
test eax, eax
je 0x1001dc4e
and byte [eax + 4], 0xfe
mov edx, dword [esp + 8]
cmp dword [edx], ecx
mov esi, dword [esp + 4]
jne 0x1001c6cc
mov dword [edx], ebx
jmp 0x1001c62b
mov eax, 1
jmp 0x1001c683
and ebx, 0xfffffffe
mov eax, dword [edx + 4]
and eax, 1
lea ecx, [eax + ebx]
mov dword [edx + 4], ecx
test ebx, ebx
je 0x1001d052
mov ecx, dword [ebx]
and ecx, 0xfffffffe
or ecx, eax
mov dword [edx + 4], ecx
mov dword [ebx], edx
mov eax, dword [edx + 4]
and eax, 1
mov ecx, dword [ebx + 4]
and ecx, 0xfffffffe
or ecx, eax
mov dword [ebx + 4], ecx
or byte [edx + 4], 1
test esi, esi
je 0x1001d06d
cmp dword [esi], edx
je 0x1001c9b8
jmp 0x1001c9bf
mov eax, dword [edi + 0x30]
mov edx, eax
mov ecx, 0xfffff000
and edx, ecx
mov esi, dword [ebx + 8]
and esi, ecx
xor ecx, ecx
cmp edx, esi
seta cl
mov edx, 0xffffffff
cmovb ecx, edx
test ecx, ecx
jne 0x1001c9a5
jmp 0x1001c9e2
mov esi, dword [esp + 4]
mov edx, ebx
test ecx, ecx
jne 0x1001c60c
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 1
cmp eax, 1
je 0x1001c87f
mov eax, dword [esp + 0xc]
mov dword [ebx], eax
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x1001dc4e
and byte [ecx + 4], 0xfe
mov eax, dword [esp + 0x10]
mov dword [esp + 4], ecx
mov dword [eax + 0x4c], ecx
add edi, 0x2000
jmp 0x1001ca69
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
test eax, eax
je 0x1001c216
xor edx, edx
mov dword [ecx + 0x38], edx
lea ecx, [esp + 0x58]
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [eax + 0x28], edx
lea edi, [eax + 0x2000]
mov dword [eax + 0x2c], 1
add eax, 0x28
jmp 0x1001c40d
push 0x1008e7b8
call dword [0x1008beb0]
sub esp, 0x10
movaps xmm0, xmmword [0x1007d110]
movups xmmword [esp], xmm0
call dword [0x1008bf2c]
xor ebx, ebx
test eax, eax
je 0x1001d52e
mov edi, eax
test eax, 0xfffff
je 0x1001c4f0
push 0x8000
push 0
push edi
call dword [0x1008bf30]
test eax, eax
je 0x1001cffc
mov esi, dword [0x1008bf2c]
sub esp, 0x10
movaps xmm0, xmmword [0x1007d120]
movups xmmword [esp], xmm0
call esi
test eax, eax
je 0x1001d52e
mov edi, eax
add edi, 0xfffff
and edi, 0xfff00000
push 0x8000
push 0
push eax
call dword [0x1008bf30]
test eax, eax
je 0x1001d010
push 4
push 0x3000
push 0x100000
push edi
call esi
cmp eax, edi
jne 0x1001d024
test edi, edi
jne 0x1001c4f0
jmp 0x1001c822
mov edx, dword [esp + 0xc]
and edx, 0xfffffffe
mov eax, dword [ebx + 4]
and eax, 1
lea ecx, [eax + edx]
mov dword [ebx + 4], ecx
test edx, edx
je 0x1001d052
mov ecx, dword [edx]
and ecx, 0xfffffffe
or ecx, eax
mov dword [ebx + 4], ecx
mov dword [edx], ebx
mov eax, dword [ebx + 4]
and eax, 1
mov ecx, dword [edx + 4]
and ecx, 0xfffffffe
or ecx, eax
mov dword [edx + 4], ecx
or byte [ebx + 4], 1
cmp dword [esi], ebx
jne 0x1001c967
mov dword [esi], edx
jmp 0x1001c771
lock add dword [0x1008e7b4], 0xfff00000
push 0x1008e7b8
call dword [0x1008beb0]
push 0x1008e784
call dword [0x1008be30]
mov eax, 0x1008e784
mov ecx, dword [0x1008e72c]
mov edx, dword [esp + 8]
mov dword [edx], ecx
mov dword [0x1008e72c], edx
jmp 0x1001c4c6
lea ebx, [esp + 0x58]
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 1
jmp 0x1001c76b
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 0xfffffffe
cmp ebx, ecx
mov ebx, dword [esp + 0x20]
jne 0x1001c775
and eax, 1
or eax, edx
mov dword [esi + 4], eax
jmp 0x1001c775
xor eax, eax
inc eax
cmp ecx, 0xffffffff
je 0x1001c9f7
mov ecx, dword [ebx + 4]
and ecx, 0xfffffffe
jmp 0x1001c746
mov dword [esi], ebx
jmp 0x1001c719
mov eax, dword [esi + 4]
and eax, 1
or eax, ebx
mov dword [esi + 4], eax
jmp 0x1001c719
test al, 0x10
mov ecx, 0
cmove ecx, dword [esp + 0xc]
xor eax, eax
cmp ecx, ebx
seta cl
jae 0x1001ca37
mov ecx, dword [ebx]
xor eax, eax
dec eax
jmp 0x1001c746
mov al, cl
jmp 0x1001c9ad
mov eax, ebx
mov ecx, eax
and eax, 0xfffff
add eax, 0xfffffff0
mov edx, 0xaaaaaaab
mul edx
mov edi, edx
and ecx, 0xfff00000
and edi, 0xfffffff8
shl edi, 9
add edi, ecx
mov ebx, dword [esp + 0x20]
mov dword [0x1008f8f4], 0x100837fa
int3
push 0x1008e768
call dword [0x1008beb0]
mov ecx, edi
mov edx, 0x100000
push 0
call 0xffffd4a
add esp, 4
jmp 0x1001dc12
mov ebx, dword [esp + 8]
mov dword [ebx + 0x14], esi
mov ecx, ebx
call fcn.10038bfa
mov ecx, 0x1008e7d0
mov edx, ebx
call fcn.1003895a
mov eax, dword [esp + 0xc]
test eax, eax
je 0x1001c4b6
mov esi, eax
push 0x1008e7b8
call dword [0x1008beb0]
call fcn.1003c8da
test eax, eax
je 0x1001cfe4
mov ebx, eax
push 0x1008e7b8
call dword [0x1008be30]
jmp 0x1001c490
cmp edx, 1
jne 0x1001c264
mov eax, dword [eax + 4]
and eax, 0xfffffffe
jmp 0x1001c24d
mov ecx, edi
mov edx, 0x100000
push dword [esp + 4]
call 0xffffd4a
add esp, 4
jmp 0x1001c7db
mov ecx, 0x100818e2
mov edx, 0x10084958
call fcn.1003c88a
jmp 0x1001c81c
mov ecx, 0x100818e2
mov edx, 0x10084958
call fcn.1003c88a
jmp 0x1001c85e
test eax, eax
je 0x1001d03a
push 0x8000
push 0
push eax
call dword [0x1008bf30]
test eax, eax
je 0x1001d041
xor edi, edi
jmp 0x1001c875
mov ecx, 0x100818e2
mov edx, 0x10084958
call fcn.1003c88a
jmp 0x1001d03a
xor ebx, ebx
jmp 0x1001d52e
mov dword [0x1008f8f4], 0x100823a2
int3