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

Disassembly:
sub esp, 0x878
push ebx
push esi
push edi
push ebp
push 0xc00
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0x42
call edi
push eax
mov esi, dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [esp + 0x58], eax
call esi
mov dword [esp + 0x24], eax
push 0x20
push 0x42
call edi
mov dword [esp + 0x50], eax
push eax
call esi
mov dword [esp + 0x58], eax
push 0x408
push 0x42
call edi
mov dword [esp + 0x4c], eax
push eax
call esi
mov dword [esp + 0x34], eax
push 0x408
push 0x42
call edi
mov dword [esp + 0x48], eax
push eax
call esi
mov dword [esp + 0x30], eax
push 0x400
push 0x42
call edi
mov dword [esp + 0x44], eax
push eax
call esi
cmp dword [esp + 0x54], 0
je 0x1000532e
cmp dword [esp + 0x24], 0
je 0x1000532e
cmp dword [esp + 0x50], 0
je 0x1000532e
cmp dword [esp + 0x58], 0
je 0x1000532e
cmp dword [esp + 0x4c], 0
je 0x1000532e
cmp dword [esp + 0x34], 0
je 0x1000532e
cmp dword [esp + 0x48], 0
je 0x1000532e
cmp dword [esp + 0x30], 0
je 0x1000532e
cmp dword [esp + 0x44], 0
je 0x1000532e
test eax, eax
je 0x1000532e
mov ecx, 0xffffff80
mov edx, ecx
imul edx, ecx
mov dword [ecx*4 + 0x10017200], edx
inc ecx
cmp ecx, 0x80
jl 0x10004a83
mov edx, dword [esp + 0x894]
mov edi, eax
mov esi, dword [esp + 0x890]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov ebx, 0x100
and ecx, 3
rep movsb byte es:[edi], byte [esi]
fld qword [0x1003c048]
fld qword [0x1003c028]
mov esi, eax
mov edi, dword [esp + 0x24]
xor eax, eax
xor ecx, ecx
mov al, byte [esi]
mov cl, byte [esi + 1]
xor edx, edx
add esi, 4
add edi, 0xc
mov dl, byte [esi - 2]
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
mov dword [esp + 0x60], ecx
fild dword [esp + 0x60]
fld qword [0x1003c010]
fmul st(1)
fld qword [0x1003c018]
fmul st(4)
faddp st(1)
fld qword [0x1003c020]
fmul st(3)
faddp st(1)
fadd st(4)
call fcn.10012528
cdq
sub eax, edx
sar eax, 1
mov dword [edi - 0xc], eax
fld qword [0x1003c030]
fmul st(1)
fld qword [0x1003c038]
fmul st(3)
faddp st(1)
fld qword [0x1003c040]
fmul st(4)
faddp st(1)
fadd st(5)
call fcn.10012528
cdq
sub eax, edx
sar eax, 1
mov dword [edi - 8], eax
fxch st(2)
fmul qword [0x1003c038]
fxch st(1)
fmul qword [0x1003c050]
faddp st(1)
fxch st(1)
fmul qword [0x1003c058]
faddp st(1)
fadd st(2)
call fcn.10012528
cdq
sub eax, edx
sar eax, 1
dec ebx
mov dword [edi - 4], eax
jne 0x10004acd
fstp st(0)
fstp st(0)
mov edi, dword [esp + 0x58]
xor eax, eax
mov ecx, 8
xor edx, edx
rep stosd dword es:[edi], eax
mov esi, dword [esp + 0x24]
mov edi, dword [esi]
mov eax, dword [esp + 0x58]
sar edi, 4
add esi, 0xc
mov ecx, edi
lea eax, [eax + edi*4]
shl ecx, 8
add ecx, edi
add ecx, edi
add ecx, dword [eax]
mov byte [esp + ecx + 0x78], dl
inc edx
inc dword [eax]
cmp edx, 0x100
jl 0x10004b9b
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x28]
sar eax, 3
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x88c]
and ecx, 0xfffffff8
mov edi, dword [esp + 0x60]
lea ebx, [edx + ecx*2]
xor ecx, ecx
add edi, ebx
mov edx, dword [esp + 0x24]
mov ebx, 0xd903
xor esi, esi
mov eax, ecx
sub eax, dword [edx]
mov ebp, dword [eax*4 + 0x10017200]
lea eax, [ebp + ebp*2]
shr eax, 1
cmp ebx, eax
jb 0x10004c43
mov ebp, dword [esp + 0x28]
sub ebp, dword [edx + 4]
add eax, dword [ebp*4 + 0x10017200]
cmp ebx, eax
jb 0x10004c43
mov ebp, dword [esp + 0x1c]
sub ebp, dword [edx + 8]
add eax, dword [ebp*4 + 0x10017200]
cmp ebx, eax
jbe 0x10004c43
mov ebx, eax
mov dword [esp + 0x14], esi
inc esi
add edx, 0xc
cmp esi, 0x100
jl 0x10004c03
mov al, byte [esp + 0x14]
add edi, 0x1000
add ecx, 0x10
mov byte [edi - 0x1000], al
cmp ecx, 0x80
jl 0x10004bf8
add dword [esp + 0x1c], 8
cmp dword [esp + 0x1c], 0x80
jl 0x10004bdf
add dword [esp + 0x28], 8
cmp dword [esp + 0x28], 0x80
jl 0x10004bcc
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x28]
sar eax, 3
mov dword [esp + 0x60], eax
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x88c]
and eax, 0xfffffff8
add eax, eax
mov dword [esp + 0x3c], eax
add eax, dword [esp + 0x60]
mov dword [esp + 0x40], eax
lea ecx, [eax + edx + 0x100]
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
sar esi, 4
mov ecx, dword [eax + esi*4]
mov eax, esi
shl eax, 8
add ecx, 2
add eax, esi
add eax, esi
lea edx, [esp + eax + 0x78]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], edx
lea edi, [ecx + edx]
mov edx, esi
shl edx, 0xc
add edx, dword [esp + 0x88c]
cmp esi, 7
mov al, byte [edx + eax]
mov byte [edi - 2], al
mov eax, 1
jl 0x10004d25
xor eax, eax
add eax, esi
mov edx, dword [esp + 0x60]
shl eax, 0xc
mov esi, dword [esp + 0x34]
add eax, dword [esp + 0x88c]
add eax, dword [esp + 0x3c]
test ecx, ecx
mov al, byte [eax + edx]
mov byte [edi - 1], al
mov edi, dword [esp + 0x30]
jle 0x10004db0
mov dword [esp + 0x38], ecx
xor eax, eax
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
add esi, 4
mov al, byte [edx]
add edi, 4
lea ebx, [eax + eax*2]
mov edx, dword [esp + 0x24]
inc dword [esp + 0x20]
sub ebp, dword [edx + ebx*4 + 8]
lea eax, [edx + ebx*4]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
sub ebx, dword [eax]
sub edx, dword [eax + 4]
mov edx, dword [edx*4 + 0x10017200]
mov eax, dword [ebx*4 + 0x10017200]
add edx, dword [ebp*4 + 0x10017200]
lea ebp, [eax + eax*2]
lea eax, [ebx + ebx*2]
lea edx, [ebp + edx*2]
add eax, eax
mov dword [esi - 4], edx
add eax, 3
dec dword [esp + 0x38]
mov dword [edi - 4], eax
jne 0x10004d4f
mov edi, dword [esp + 0x2c]
mov esi, 0xf
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
test ecx, ecx
mov dword [esp + 0x20], 0xd903
jle 0x10004e02
mov dword [esp + 0x38], ecx
mov ebx, dword [edx]
cmp dword [esp + 0x20], ebx
jbe 0x10004de9
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov bl, byte [eax]
mov dword [esp + 0x14], ebx
mov ebx, dword [ebp]
inc eax
add ebx, dword [edx]
add edx, 4
add ebp, 4
mov dword [edx - 4], ebx
add dword [ebp - 4], 6
dec dword [esp + 0x38]
jne 0x10004dd5
mov al, byte [esp + 0x14]
add edi, 0x100
dec esi
mov byte [edi - 0x100], al
jne 0x10004db9
add dword [esp + 0x2c], 0x1000
add dword [esp + 0x10], 0x10
cmp dword [esp + 0x10], 0x80
jl 0x10004cda
add dword [esp + 0x1c], 8
cmp dword [esp + 0x1c], 0x80
jl 0x10004cab
add dword [esp + 0x28], 8
cmp dword [esp + 0x28], 0x80
jl 0x10004c98
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
push 1
call fcn.10013413
mov dword [esp + 0x44], 0x20
add esp, 4
lea edi, [esp + 0x60]
mov eax, 0x7fff
mov ecx, 6
rep stosd dword es:[edi], eax
call fcn.1001341d
lea ecx, [eax + eax*2]
mov dword [esp + 0x2c], 0
lea edx, [eax + ecx*4]
mov ecx, 0x7fff
lea ebx, [edx + edx*8]
lea eax, [eax + ebx*2]
cdq
idiv ecx
lea ecx, [eax + eax*2 + 0x1e]
add eax, 0xa
mov edx, dword [esp + 0x24]
mov ebx, dword [edx + ecx*4 + 4]
lea edx, [edx + ecx*4]
mov dword [esp + 0x58], ebx
mov ecx, dword [edx]
mov edx, dword [edx + 8]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x24]
cmp eax, dword [esp + 0x2c]
je 0x10004f3f
mov ecx, dword [esp + 0x58]
sub ecx, dword [edx + 4]
mov esi, dword [ecx*4 + 0x10017200]
mov ecx, dword [esp + 0x3c]
sub ecx, dword [edx + 8]
xor ebx, ebx
add esi, dword [ecx*4 + 0x10017200]
mov ecx, dword [esp + 0x38]
sub ecx, dword [edx]
add esi, dword [ecx*4 + 0x10017200]
lea ecx, [esp + 0x60]
cmp dword [ecx], esi
ja 0x10004f1f
add ecx, 4
inc ebx
lea edi, [esp + 0x78]
cmp ecx, edi
jb 0x10004f0d
jmp 0x10004f3f
cmp ebx, 5
jge 0x10004f3b
lea ecx, [esp + 0x74]
mov edi, 5
sub edi, ebx
mov ebp, dword [ecx - 4]
sub ecx, 4
dec edi
mov dword [ecx + 4], ebp
jne 0x10004f2f
mov dword [esp + ebx*4 + 0x60], esi
add edx, 0xc
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 0xff
jl 0x10004ed8
lea esi, [esp + 0x60]
xor edi, edi
mov eax, dword [esi]
add esi, 4
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edi
fild qword [esp + 0x58]
fsqrt
call fcn.10012528
add dword [esp + 0x28], eax
lea eax, [esp + 0x78]
cmp esi, eax
jb 0x10004f56
dec dword [esp + 0x40]
jne 0x10004e80
mov ecx, 0xc0
mov eax, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x60], pe_nt_image_headers32
mov dword [esp + 0x28], eax
mov esi, 0x7fff
call fcn.1001341d
mov ecx, eax
shl ecx, 8
sub ecx, eax
mov eax, ecx
cdq
idiv esi
mov edi, eax
call fcn.1001341d
mov ecx, eax
shl ecx, 8
sub ecx, eax
mov eax, ecx
cdq
idiv esi
mov ebx, eax
call fcn.1001341d
mov ecx, eax
mov dword [esp + 0x58], edi
fild dword [esp + 0x58]
shl ecx, 8
sub ecx, eax
mov eax, ecx
cdq
idiv esi
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
mov dword [esp + 0x58], ebx
fild dword [esp + 0x58]
fld qword [0x1003c010]
fmul st(1)
fld qword [0x1003c018]
fmul st(4)
faddp st(1)
fld qword [0x1003c020]
fmul st(3)
faddp st(1)
fadd qword [0x1003c028]
call fcn.10012528
cdq
sub eax, edx
sar eax, 1
mov edi, eax
fld qword [0x1003c030]
fmul st(1)
fld qword [0x1003c038]
fmul st(3)
faddp st(1)
fld qword [0x1003c040]
fmul st(4)
faddp st(1)
fadd qword [0x1003c048]
call fcn.10012528
cdq
sub eax, edx
sar eax, 1
mov esi, eax
fxch st(2)
fmul qword [0x1003c038]
fxch st(1)
fmul qword [0x1003c050]
faddp st(1)
fxch st(1)
fmul qword [0x1003c058]
faddp st(1)
fadd qword [0x1003c048]
call fcn.10012528
cdq
shl edi, 8
sub eax, edx
sar eax, 1
mov ecx, 0x1003e098
mov ebx, eax
xor eax, eax
mov ebp, 3
mov al, byte [ecx]
imul eax, dword [esp + 0x28]
cdq
idiv ebp
mov dword [esp + 0x58], 3
lea ebp, [esi + eax]
xor eax, eax
mov al, byte [ecx + 1]
imul eax, dword [esp + 0x28]
cdq
idiv dword [esp + 0x58]
cmp ebp, 0x7f
lea edx, [ebx + eax]
jle 0x100050bd
mov ebp, 0x7f
cmp edx, 0x7f
jle 0x100050c7
mov edx, 0x7f
sar ebp, 3
and edx, 0xfffffff8
lea edx, [ebp + edx*2]
add edx, dword [esp + 0x88c]
xor eax, eax
add ecx, 2
mov al, byte [edx + edi]
mov edx, dword [esp + 0x24]
lea ebp, [eax + eax*2]
lea eax, [edx + ebp*4]
mov ebp, dword [eax + 4]
mov edx, dword [eax + 8]
sub dword [esp + 0x34], ebp
sub dword [esp + 0x30], edx
add dword [esp + 0x34], esi
add dword [esp + 0x30], ebx
cmp ecx, 0x1003e0a0
jb 0x10005085
dec dword [esp + 0x60]
jne 0x10004f9c
mov eax, dword [esp + 0x34]
add eax, 0x100
cdq
and edx, 0x1ff
add eax, edx
sar eax, 9
mov edi, eax
mov eax, dword [esp + 0x30]
add eax, 0x100
cdq
and edx, 0x1ff
mov ebx, 3
add eax, edx
sar eax, 9
mov ebp, ebx
mov esi, eax
mov eax, dword [esp + 0x28]
add eax, eax
cdq
idiv ebx
mov ebx, dword [esp + 0x88c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x28]
add ebx, 0x8000
cdq
idiv ebp
mov dword [esp + 0x60], pe_nt_image_headers32
lea ebp, [ebx + 0x200]
mov ecx, dword [esp + 0x58]
add ecx, edi
cmp ecx, 0x7f
jle 0x1000518c
mov ecx, 0x7f
jmp 0x10005192
test ecx, ecx
jg 0x10005192
xor ecx, ecx
xor edx, edx
mov dl, cl
lea ecx, [eax + edi]
shl edx, 8
cmp ecx, 0x7f
jle 0x100051a8
mov ecx, 0x7f
jmp 0x100051ae
test ecx, ecx
jg 0x100051ae
xor ecx, ecx
mov dword [esp + 0x40], 0
mov byte [esp + 0x40], cl
or edx, dword [esp + 0x40]
shl edx, 8
cmp edi, 0x7f
jle 0x100051cd
mov ecx, 0x7f
jmp 0x100051d5
mov ecx, edi
test ecx, ecx
jg 0x100051d5
xor ecx, ecx
mov dword [esp + 0x40], 0
mov byte [esp + 0x40], cl
mov ecx, dword [esp + 0x28]
or edx, dword [esp + 0x40]
add ecx, edi
shl edx, 8
cmp ecx, 0x7f
jle 0x100051fa
mov ecx, 0x7f
jmp 0x10005200
test ecx, ecx
jg 0x10005200
xor ecx, ecx
mov dword [esp + 0x40], 0
add ebx, 4
mov byte [esp + 0x40], cl
or edx, dword [esp + 0x40]
lea ecx, [esi + eax]
and edx, 0x78787878
shr edx, 3
cmp ecx, 0x7f
mov dword [ebx - 4], edx
jle 0x1000522e
mov ecx, 0x7f
jmp 0x10005234
test ecx, ecx
jg 0x10005234
xor ecx, ecx
xor edx, edx
mov dl, cl
mov ecx, dword [esp + 0x58]
shl edx, 8
add ecx, esi
cmp ecx, 0x7f
jle 0x1000524d
mov ecx, 0x7f
jmp 0x10005253
test ecx, ecx
jg 0x10005253
xor ecx, ecx
mov dword [esp + 0x40], 0
mov byte [esp + 0x40], cl
mov ecx, dword [esp + 0x28]
or edx, dword [esp + 0x40]
add ecx, esi
shl edx, 8
cmp ecx, 0x7f
jle 0x10005278
mov ecx, 0x7f
jmp 0x1000527e
test ecx, ecx
jg 0x1000527e
xor ecx, ecx
mov dword [esp + 0x40], 0
mov byte [esp + 0x40], cl
or edx, dword [esp + 0x40]
shl edx, 8
cmp esi, 0x7f
jle 0x1000529d
mov ecx, 0x7f
jmp 0x100052a5
mov ecx, esi
test ecx, ecx
jg 0x100052a5
xor ecx, ecx
add ebp, 4
inc edi
mov dword [esp + 0x40], 0
inc esi
mov byte [esp + 0x40], cl
or edx, dword [esp + 0x40]
and edx, 0xf8787878
add edx, edx
dec dword [esp + 0x60]
mov dword [ebp - 4], edx
jne 0x1000517a
mov eax, dword [esp + 0x54]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push eax
call esi
mov ecx, dword [esp + 0x54]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalFree]
push ecx
call edi
mov ecx, dword [esp + 0x50]
push ecx
call esi
mov eax, dword [esp + 0x50]
push eax
call edi
mov eax, dword [esp + 0x4c]
push eax
call esi
mov eax, dword [esp + 0x4c]
push eax
call edi
mov eax, dword [esp + 0x48]
push eax
call esi
mov eax, dword [esp + 0x48]
push eax
call edi
mov eax, dword [esp + 0x44]
push eax
call esi
mov eax, dword [esp + 0x44]
push eax
call edi
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x878
ret
mov eax, 0xfffffffd
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x878
ret