Function at 0x100d30c0
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1878
call fcn.10451050
mov eax, dword [0x11ad127c]
xor eax, esp
mov dword [esp + 0x1874], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0x38], edi
test eax, eax
je 0x100d317e
mov eax, dword [edi + 0x80]
or eax, dword [edi + 0x84]
jne 0x100d3115
mov eax, dword [edi + 0x88]
or eax, dword [edi + 0x8c]
je 0x100d319d
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [edi + 0x80]
mov eax, edx
mov ecx, dword [edi + 0x84]
or eax, ecx
je 0x100d3140
cmp dword [esp + 0x24], ecx
jl 0x100d317e
jg 0x100d3140
cmp dword [esp + 0x20], edx
jb 0x100d317e
mov ecx, dword [edi + 0x88]
mov eax, ecx
mov edx, dword [edi + 0x8c]
or eax, edx
je 0x100d319d
cmp dword [esp + 0x24], edx
jl 0x100d319d
jg 0x100d3160
cmp dword [esp + 0x20], ecx
jbe 0x100d319d
cmp byte [edi + 0x90], 0
je 0x100d3196
mov ecx, edi
call fcn.100d62c0
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], 0
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x1874]
xor ecx, esp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0xc
mov byte [edi + 0x90], 1
mov esi, dword [esp + 0x170]
lea eax, [esp + 0x150]
push 0x2ec
push 0
push eax
call fcn.10425c00
add esp, 0xc
mov dword [esp + 0x170], esi
mov esi, dword [esp + 0x698]
lea eax, [esp + 0x678]
mov dword [esp + 0x150], 0x4e564441
mov dword [esp + 0x154], 0x10002
push 0x9c8
push 0
push eax
mov dword [esp + 0x164], 0x2ec
mov dword [esp + 0x168], 0x4e564458
mov dword [esp + 0x16c], 0x10000d9
call fcn.10425c00
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp byte [edi + 0x13c], 0
mov dword [esp + 0x678], 0x4e564441
mov dword [esp + 0x67c], 0x10002
mov dword [esp + 0x680], 0x9c8
mov dword [esp + 0x684], 0x4e564458
mov dword [esp + 0x688], 0x1000129
mov dword [esp + 0x698], esi
mov dword [esp + 0x180], eax
jne 0x100d3274
cmp dword [edi + 0x54], 0
jne 0x100d3274
cmp dword [edi + 0x58], 0
je 0x100d3288
cmp byte [edi + 0x90], 0
mov dword [esp + 0x184], 0
je 0x100d3293
mov dword [esp + 0x184], 1
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x150]
mov eax, dword [edi + 0xac]
mov dword [esp + 0x188], eax
push 0x2ec
mov eax, dword [esi]
push ecx
mov ecx, esi
mov eax, dword [eax]
call eax
test eax, eax
js 0x100d317e
cmp dword [ebp + 0xc], 0
je 0x100d3374
test byte [edi + 0x58], 0x40
je 0x100d3374
mov esi, dword [esp + 0x698]
lea eax, [esp + 0x678]
push 0x9c8
push 0
push eax
call fcn.10425c00
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x684]
mov eax, dword [ebp + 0x10]
add esp, 0xc
mov dword [esp + 0x6a8], eax
mov eax, dword [edi + 0xa4]
mov dword [esp + 0xfb4], eax
mov eax, dword [ecx]
push 0x9c8
push edx
mov dword [esp + 0x680], 0x4e564441
mov eax, dword [eax]
mov dword [esp + 0x684], 0x10002
mov dword [esp + 0x688], 0x9c8
mov dword [esp + 0x68c], 0x4e564458
mov dword [esp + 0x690], 0x1000129
mov dword [esp + 0x6a0], esi
call eax
test eax, eax
js 0x100d317e
mov eax, dword [esp + 0xfb8]
add dword [edi + 0xa4], eax
test dword [edi + 0x58], 0x10000000
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x198]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jne 0x100d33ad
mov eax, dword [edi + 0x48]
or eax, dword [edi + 0x4c]
jne 0x100d33ad
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov esi, dword [edi + 0x98]
cmp esi, dword [edi + 0xa0]
ja 0x100d344d
add esi, esi
mov eax, 0x1000
cmp esi, eax
mov edx, 0x140
cmovb esi, eax
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x100d317e
lea eax, [edi + 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 0x98]
test ecx, ecx
je 0x100d3430
lea eax, [ecx + ecx*4]
shl eax, 6
push eax
push dword [edi + 0x94]
push dword [esp + 0x24]
call fcn.10425d60
add esp, 0xc
push dword [edi + 0x94]
call fcn.10450877
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x94], eax
lea eax, [edi + 0x124]
push eax
mov dword [edi + 0x98], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi + 0xa0]
lea esi, [eax + eax*4]
shl esi, 6
lea eax, [eax + 1]
add esi, dword [edi + 0x94]
mov dword [esp + 0x1c], esi
mov dword [edi + 0xa0], eax
je 0x100d317e
mov edx, dword [esi + 0x24]
xor edx, dword [esp + 0x2e8]
and edx, 0x1fffffff
xor edx, dword [esi + 0x24]
mov dword [esi + 0x24], edx
mov ecx, dword [esp + 0x18c]
sub ecx, dword [edi + 0x48]
mov eax, dword [esp + 0x190]
sbb eax, dword [edi + 0x4c]
mov dword [esi + 4], eax
mov dword [esi], ecx
movzx eax, byte [edi + 0x13d]
shl eax, 0x1e
xor eax, edx
and eax, 0x40000000
xor eax, edx
mov dword [esi + 0x24], eax
test dword [edi + 0x58], 0x1000000
je 0x100d34c7
mov byte [edi + 0x13d], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
and dword [esi + 0x24], 0x7fffffff
mov dword [esi + 0xb8], eax
mov dword [esi + 0xbc], ecx
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0xa0], 0
mov dword [esi + 0x98], 0
cmp dword [edi + 0xb8], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
jne 0x100d3560
mov eax, dword [edi + 0xa0]
mov dword [edi + 0xc0], eax
mov edx, dword [edi + 0xc0]
mov eax, dword [edi + 0x9c]
cmp edx, eax
jbe 0x100d3575
sub edx, eax
dec edx
jmp 0x100d3577
xor edx, edx
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], edx
test eax, eax
je 0x100d35ed
cmp byte [eax + 2], 0
jne 0x100d3592
cmp byte [eax + 1], 0
jne 0x100d3592
xor al, al
jmp 0x100d3594
mov al, 1
mov ecx, dword [esi + 0x24]
mov byte [esp + 0xb], al
test al, al
je 0x100d35f6
or ecx, 0x20000000
mov dword [esi + 0x24], ecx
mov eax, dword [edi + 0x10]
add eax, 0x24
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 0x10]
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + 0x80]
cmp eax, esi
cmovb esi, eax
lea eax, [ecx + 0x24]
push eax
mov dword [esp + 0x1c], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0xb]
mov ecx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x10]
mov byte [esp + 0xb], al
jmp 0x100d362a
mov ecx, dword [esi + 0x24]
xor al, al
mov byte [esp + 0xb], al
xor eax, eax
mov dword [esp + 0xc], 0x20000000
cmp dword [ebp + 0x10], 0xffffffff
cmovne eax, dword [esp + 0xc]
and ecx, 0xdfffffff
or eax, ecx
mov dword [esi + 0x24], eax
mov esi, edx
mov ecx, dword [esp + 0x2dc]
cmp ecx, edx
mov al, byte [esp + 0xb]
cmovb esi, ecx
mov dword [esp + 0x18], esi
test esi, esi
je 0x100d3978
cmp dword [edi + 0xac], 0
je 0x100d3978
test al, al
jne 0x100d39ac
mov eax, dword [esp + 0x188]
sub eax, dword [edi + 0xac]
cmp eax, esi
jbe 0x100d3664
sub eax, esi
cmp edx, eax
jb 0x100d3662
sub edx, eax
jmp 0x100d3664
xor edx, edx
cmp esi, edx
cmovb edx, esi
sub ecx, edx
mov dword [esp + 0x10], edx
test edx, edx
je 0x100d3978
lea eax, [esp + 0x338]
mov dword [esp + 0x30], 0xa
lea eax, [eax + ecx*8]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x21c]
lea eax, [eax + ecx*4]
mov dword [esp + 0x2c], eax
nop dword [eax + eax]
mov ecx, dword [edi + 0x9c]
cmp ecx, dword [edi + 0xc0]
jae 0x100d3978
mov edx, dword [edi + 0xb8]
mov esi, dword [edi + 0x94]
mov dword [esp + 0xc], edx
test edx, edx
je 0x100d36cb
mov eax, dword [edx + ecx*4]
jmp 0x100d36cd
mov eax, ecx
lea eax, [eax + eax*4]
shl eax, 6
cmp dword [eax + esi + 0x24], 0
jge 0x100d36ec
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x9c], eax
jmp 0x100d3970
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
test eax, eax
je 0x100d3747
cmp dword [esp + 0x30], ecx
lea eax, [ecx - 0xa]
sbb ecx, ecx
and ecx, eax
cmp ecx, dword [edi + 0xa8]
ja 0x100d3747
cmp ecx, dword [edi + 0xc0]
jae 0x100d3747
test edx, edx
je 0x100d371a
mov eax, dword [edx + ecx*4]
jmp 0x100d371c
mov eax, ecx
mov edx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
shl eax, 6
mov edi, dword [edx]
cmp dword [eax + esi + 0x1c], edi
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0xc]
je 0x100d3741
inc ecx
cmp ecx, dword [edi + 0xc0]
jb 0x100d3711
jmp 0x100d3747
mov dword [edi + 0x9c], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [eax - 0x19c]
sub ecx, dword [edi + 0x48]
mov eax, dword [eax - 0x198]
sbb eax, dword [edi + 0x4c]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x9c]
test edx, edx
je 0x100d376e
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
shl eax, 6
mov dword [eax + esi + 0x10], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + esi + 0x14], ecx
mov ecx, dword [edi + 0xb8]
mov esi, dword [edx]
mov eax, dword [edi + 0x9c]
test ecx, ecx
je 0x100d3799
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 0x94]
lea eax, [eax + eax*4]
shl eax, 6
mov dword [eax + ecx + 0x18], esi
mov ecx, dword [edi + 0xb8]
mov esi, dword [edi + 0x94]
mov eax, dword [edi + 0x9c]
test ecx, ecx
je 0x100d37c2
mov eax, dword [ecx + eax*4]
lea eax, [eax + eax*4]
shl eax, 6
mov dword [eax + esi + 0x20], 0
cmp dword [esp + 0xfb8], 0
jbe 0x100d3862
mov esi, dword [edi + 0x9c]
lea ecx, [esi - 0x10]
cmp ecx, esi
jae 0x100d3862
mov eax, dword [edi + 0x94]
mov edx, dword [edi + 0xb8]
mov dword [esp + 0xc], eax
nop dword [eax + eax]
test edx, edx
je 0x100d3809
mov eax, dword [edx + ecx*4]
jmp 0x100d380b
mov eax, ecx
mov esi, dword [esp + 0x6b4]
lea edi, [ecx*4]
mov dword [esp + 0x20], edi
lea eax, [eax + eax*4]
mov edi, dword [esp + 0xc]
shl eax, 6
cmp dword [eax + edi + 0x18], esi
mov edi, dword [esp + 0x38]
mov esi, dword [edi + 0x9c]
je 0x100d383e
inc ecx
cmp ecx, esi
jb 0x100d3800
jmp 0x100d385e
test edx, edx
je 0x100d3849
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + edx]
mov edx, dword [esp + 0xc]
lea ecx, [ecx + ecx*4]
mov eax, dword [esp + 0x6d0]
shl ecx, 6
mov dword [ecx + edx + 0x20], eax
mov edx, dword [esp + 0x2c]
mov ecx, dword [edi + 0xb8]
mov esi, dword [edx + 0x40]
mov eax, dword [edi + 0x9c]
test ecx, ecx
je 0x100d3878
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 0x94]
lea eax, [eax + eax*4]
shl eax, 6
mov dword [eax + ecx + 0x9c], esi
mov ecx, dword [edi + 0xb8]
mov esi, dword [edx + 0x80]
mov eax, dword [edi + 0x9c]
test ecx, ecx
je 0x100d38a4
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 0x94]
lea eax, [eax + eax*4]
shl eax, 6
mov dword [eax + ecx + 0xa0], esi
mov eax, dword [esp + 0x18]
mov esi, dword [edi + 0x94]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0xb8]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x9c]
test ecx, ecx
je 0x100d38e1
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
shl eax, 6
mov dword [eax + esi + 0x120], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + esi + 0x124], ecx
mov ecx, dword [edi + 0xb8]
mov esi, dword [edx + 0x1dc]
mov eax, dword [edi + 0x9c]
test ecx, ecx
je 0x100d3916
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 0x94]
lea eax, [eax + eax*4]
shl eax, 6
mov dword [eax + ecx + 0x128], esi
mov ecx, dword [edi + 0xb8]
mov esi, dword [edx + 0xdc]
mov eax, dword [edi + 0x9c]
test ecx, ecx
je 0x100d3942
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 0x94]
lea eax, [eax + eax*4]
add dword [esp + 0x18], 8
add edx, 4
shl eax, 6
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
dec edx
mov dword [eax + ecx + 0x12c], esi
inc dword [edi + 0x9c]
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100d36a0
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x1c]
test dword [eax + 0x24], 0x20000000
je 0x100d3a7f
cmp byte [esp + 0xb], 0
jne 0x100d3a52
mov eax, dword [esp + 0x188]
mov dword [edi + 0xac], eax
jmp 0x100d3a95
mov eax, dword [edi + 0x10]
add eax, 0x24
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [eax]
mov edx, dword [edi + 0x9c]
cmp edx, dword [edi + 0xc0]
jae 0x100d3a32
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + 0x88]
and eax, 0xf
mov esi, dword [ecx + eax*8]
sub esi, dword [edi + 0x48]
mov dword [esp + 0x20], esi
mov esi, dword [ecx + eax*8 + 4]
sbb esi, dword [edi + 0x4c]
mov eax, dword [edi + 0xb8]
test eax, eax
je 0x100d39fb
mov edx, dword [eax + edx*4]
mov ecx, dword [esp + 0x20]
lea eax, [edx + edx*4]
mov edx, dword [edi + 0x94]
shl eax, 6
mov dword [eax + edx + 0x14], esi
mov esi, dword [esp + 0x18]
mov dword [eax + edx + 0x10], ecx
dec esi
mov eax, dword [edi + 0x10]
inc dword [edi + 0x9c]
mov dword [esp + 0x18], esi
mov eax, dword [eax + 0x3c]
inc dword [eax + 0x88]
test esi, esi
jne 0x100d39c0
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0x3c]
mov dword [eax + 0x80], esi
mov eax, dword [edi + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add eax, 0x24
push eax
call esi
jmp 0x100d397e
mov eax, dword [edi + 0x10]
add eax, 0x24
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + 0x84]
mov dword [edi + 0xac], eax
mov dword [ecx + 0x20], eax
mov eax, dword [edi + 0x10]
add eax, 0x24
push eax
call esi
jmp 0x100d3a95
mov eax, dword [edi + 0xa0]
mov dword [edi + 0xac], 0
mov dword [edi + 0x9c], eax
test dword [edi + 0x58], 0x40000
lea ecx, [edi + 0x54]
jne 0x100d3ab1
test dword [ecx], 0x180
mov dword [esp + 0x2c], ecx
je 0x100d3be3
mov esi, dword [esp + 0x60]
lea eax, [esp + 0x40]
push 0x54
push 0
push eax
mov dword [esp + 0x38], ecx
call fcn.10425c00
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x4c]
add esp, 0xc
mov dword [esp + 0x40], 0x4e564441
mov dword [esp + 0x44], 0x10002
mov dword [esp + 0x48], 0x54
mov eax, dword [ecx]
push 0x54
push edx
mov dword [esp + 0x54], 0x4e564458
mov eax, dword [eax]
mov dword [esp + 0x58], 0x1000012
mov dword [esp + 0x68], esi
call eax
test eax, eax
js 0x100d317e
mov ecx, dword [esp + 0x70]
mov eax, ecx
movsd xmm1, qword [0x1122d208]
mov esi, dword [esp + 0x1c]
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
sub ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x84]
addsd xmm0, qword [eax*8 + 0x1122e340]
mov eax, edx
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + 0xa8], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1122e340]
mov ecx, dword [esp + 0x8c]
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + 0xa4], xmm0
sub eax, dword [edi + 0xb0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
mov eax, ecx
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + 0xb0], xmm0
sub eax, dword [edi + 0xb4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esi + 0xac], xmm0
mov dword [edi + 0xb4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [edi + 0xb0], edx
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x100d3cc9
mov edx, dword [edi + 0x58]
test edx, 0x280000
jne 0x100d3c15
test dword [ecx], 0x600
jne 0x100d3c15
mov dword [esp + 0x18], eax
test edx, 0x8000
je 0x100d3cc9
mov esi, dword [esp + 0x460]
lea eax, [esp + 0x440]
push 0x238
push 0
push eax
call fcn.10425c00
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x44c]
add esp, 0xc
mov dword [esp + 0x440], 0x4e564441
mov dword [esp + 0x444], 0x10002
mov dword [esp + 0x448], 0x238
mov eax, dword [ecx]
push 0x238
push edx
mov dword [esp + 0x454], 0x4e564458
mov eax, dword [eax]
mov dword [esp + 0x458], 0x7000002
mov dword [esp + 0x468], esi
call eax
test eax, eax
js 0x100d317e
mov eax, dword [esp + 0x474]
xor ecx, ecx
mov dword [esp + 0x18], eax
mov dword [edi + 0x5c], eax
test eax, eax
je 0x100d3cc9
lea edx, [edi + 0x60]
nop word [eax + eax]
mov eax, dword [esp + ecx*4 + 0x478]
lea edx, [edx + 4]
mov dword [edx - 4], eax
inc ecx
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x18], eax
cmp ecx, eax
jb 0x100d3cb0
test dword [edi + 0x58], 0x280000
jne 0x100d3ce6
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
test dword [eax], 0x600
je 0x100d3e3c
mov esi, dword [esp + 0x1060]
lea eax, [esp + 0x1040]
push 0x838
push 0
push eax
call fcn.10425c00
mov eax, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x1040], 0x4e564441
mov dword [esp + 0x1044], 0x10002
mov dword [esp + 0x1048], 0x838
mov dword [esp + 0x104c], 0x4e564458
mov dword [esp + 0x1050], 0x700000a
mov dword [esp + 0x1060], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
test eax, eax
je 0x100d3e3c
mov esi, dword [esp + 0x1c]
lea edx, [edi + 0x60]
add esi, 0xe0
mov dword [esp + 0x18], edx
nop dword [eax + eax]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx]
lea edx, [esp + 0x1040]
mov dword [esp + 0x1070], eax
push 0x838
mov eax, dword [ecx]
push edx
mov eax, dword [eax]
call eax
test eax, eax
js 0x100d317e
mov edx, dword [esp + 0x1074]
test edx, edx
je 0x100d3e16
lea ecx, [esp + 0x1080]
nop word [eax + eax]
mov eax, dword [ecx - 4]
cmp eax, 0x1000
jne 0x100d3de3
mov eax, dword [ecx]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
divsd xmm0, qword [0x1122d460]
cvtpd2ps xmm0, xmm0
movss dword [esi - 0x20], xmm0
jmp 0x100d3e0e
cmp eax, 0x10
jne 0x100d3e0e
mov eax, dword [ecx]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
divsd xmm0, qword [0x1122d448]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
add ecx, 0x30
sub edx, 1
jne 0x100d3db0
mov eax, dword [esp + 0xc]
add esi, 4
mov edx, dword [esp + 0x18]
inc eax
mov ecx, dword [edi + 0x5c]
add edx, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
cmp eax, ecx
jb 0x100d3d70
test dword [edi + 0x58], 0x8000
je 0x100d4098
mov esi, dword [esp + 0xb8]
lea eax, [esp + 0x98]
push 0xb8
push 0
push eax
call fcn.10425c00
add esp, 0xc
mov dword [esp + 0x98], 0x4e564441
cmp dword [esp + 0x10], 0
mov dword [esp + 0x9c], 0x10002
mov dword [esp + 0xa0], 0xb8
mov dword [esp + 0xa4], 0x4e564458
mov dword [esp + 0xa8], 0x7000061
mov dword [esp + 0xb8], esi
mov dword [esp + 0xc], 0
jbe 0x100d4098
mov esi, dword [esp + 0x1c]
lea ecx, [edi + 0x60]
add esi, 0x100
mov dword [esp + 0x1c], ecx
nop dword [eax]
mov eax, dword [ecx]
lea edx, [esp + 0x98]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc8], eax
push 0xb8
push edx
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
test eax, eax
js 0x100d317e
cmp dword [esp + 0xd0], 0x1000
jne 0x100d3f28
mov eax, dword [esp + 0xd4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
cmp dword [esp + 0xe0], 0x1000
jne 0x100d3f58
mov eax, dword [esp + 0xe4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
cmp dword [esp + 0xf0], 0x1000
jne 0x100d3f88
mov eax, dword [esp + 0xf4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
cmp dword [esp + 0x100], 0x1000
jne 0x100d3fb8
mov eax, dword [esp + 0x104]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
cmp dword [esp + 0x110], 0x1000
jne 0x100d3fe8
mov eax, dword [esp + 0x114]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
cmp dword [esp + 0x120], 0x1000
jne 0x100d4018
mov eax, dword [esp + 0x124]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
cmp dword [esp + 0x130], 0x1000
jne 0x100d4048
mov eax, dword [esp + 0x134]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
cmp dword [esp + 0x140], 0x1000
jne 0x100d4078
mov eax, dword [esp + 0x144]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
mov eax, dword [esp + 0xc]
add esi, 4
mov ecx, dword [esp + 0x1c]
inc eax
add ecx, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], ecx
cmp eax, dword [edi + 0x5c]
jb 0x100d3ed0
test byte [edi + 0x58], 1
je 0x100d486f
mov ecx, dword [edi + 0x40]
mov eax, ecx
mov edx, dword [edi + 0x44]
or eax, edx
je 0x100d486f
mov esi, dword [edi + 0x9c]
mov dword [esp + 0x2c], esi
cmp esi, 5
jb 0x100d486f
cmp dword [edi + 0xa0], 0
je 0x100d486f
call fcn.104511a0
movss xmm1, dword [0x1122d540]
lea eax, [esi - 1]
mov edx, dword [edi + 0x94]
lea ecx, [eax + eax*4]
cvtsd2ss xmm0, xmm0
shl ecx, 6
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
mov eax, dword [ecx + edx - 0x3b0]
mov edi, dword [ecx + edx - 0x130]
mov esi, dword [ecx + edx - 0x12c]
divss xmm1, xmm0
mov dword [esp + 0xc], eax
mov eax, dword [ecx + edx - 0x3ac]
mov ecx, dword [ecx + edx + 0x10]
mov dword [esp + 0x20], eax
sub ecx, edi
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edx + 0x14]
sbb edx, esi
movss dword [esp + 0x10], xmm1
call fcn.104511a0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
cvtsd2ss xmm0, xmm0
sub edi, dword [ecx + eax - 0x270]
sbb esi, dword [ecx + eax - 0x26c]
mov ecx, edi
mulss xmm0, dword [esp + 0x10]
mov edx, esi
movss dword [esp + 0x18], xmm0
call fcn.104511a0
mov eax, dword [esp + 0x14]
mov edi, eax
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
cvtsd2ss xmm0, xmm0
mov ecx, dword [eax + edx - 0x270]
sub ecx, dword [esp + 0xc]
mov edx, dword [edi + edx - 0x26c]
sbb edx, esi
mulss xmm0, dword [esp + 0x10]
movss dword [esp + 0x30], xmm0
call fcn.104511a0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
cvtsd2ss xmm0, xmm0
sub edi, dword [ecx + eax - 0x4f0]
sbb esi, dword [ecx + eax - 0x4ec]
mov ecx, edi
mov edx, esi
mulss xmm0, dword [esp + 0x10]
movss dword [esp + 0x20], xmm0
call fcn.104511a0
movss xmm4, dword [esp + 0x30]
xorps xmm3, xmm3
movss xmm2, dword [esp + 0x20]
cvtsd2ss xmm3, xmm0
mov edi, dword [esp + 0x38]
movaps xmm0, xmm4
movaps xmm1, xmm2
minss xmm0, dword [esp + 0x18]
mulss xmm3, dword [esp + 0x10]
maxss xmm4, dword [esp + 0x18]
minss xmm1, xmm0
movaps xmm0, xmm3
maxss xmm2, xmm4
minss xmm0, xmm1
maxss xmm3, xmm2
subss xmm3, xmm0
divss xmm3, xmm0
movaps xmm0, xmm3
addss xmm0, dword [edi + 0xe0]
movss dword [edi + 0xe0], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm0, dword [edi + 0xe4]
movss dword [edi + 0xe4], xmm0
movss xmm0, dword [edi + 0xe8]
inc dword [edi + 0xec]
maxss xmm0, xmm3
mov eax, dword [esp + 0x2c]
mov esi, 0xc
mov edx, dword [esp + 0x14]
dec eax
cmp eax, esi
cmovb esi, eax
movss dword [edi + 0xe8], xmm0
mov ecx, dword [edi + 0x94]
sub eax, esi
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x20]
mov ecx, dword [ecx + edx + 0x10]
lea eax, [eax + eax*4]
shl eax, 6
mov edx, dword [edi + edx + 0x14]
sub ecx, dword [eax + edi + 0x10]
sbb edx, dword [eax + edi + 0x14]
call fcn.104511a0
xorps xmm1, xmm1
mov edi, dword [esp + 0x38]
cvtsd2ss xmm1, xmm0
mov ecx, dword [edi + 0x11c]
movd xmm0, esi
mulss xmm1, dword [esp + 0x10]
shr esi, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [esi*8 + 0x1122e340]
mov esi, dword [edi + 0x94]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0xc], xmm1
test ecx, ecx
je 0x100d43c7
mov eax, dword [edi + 0xa0]
lea edx, [eax + eax*4]
shl edx, 6
lea eax, [ecx + ecx*4]
shl eax, 6
mov ecx, dword [edx + esi - 0x140]
sub ecx, dword [eax + esi]
mov edx, dword [edx + esi - 0x13c]
sbb edx, dword [eax + esi + 4]
call fcn.104511a0
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x10]
comiss xmm0, dword [0x1122d520]
ja 0x100d435f
movss xmm0, dword [edi + 0x118]
maxss xmm0, dword [esp + 0xc]
mov ecx, dword [edi + 0xa0]
movss dword [edi + 0x118], xmm0
movss xmm0, dword [edi + 0x114]
minss xmm0, dword [esp + 0xc]
movss dword [edi + 0x114], xmm0
jmp 0x100d43e6
movss xmm1, dword [edi + 0x118]
movss xmm0, dword [edi + 0x114]
subss xmm1, xmm0
inc dword [edi + 0xfc]
divss xmm1, xmm0
movaps xmm0, xmm1
addss xmm0, dword [edi + 0xf0]
movss dword [edi + 0xf0], xmm0
movaps xmm0, xmm1
mulss xmm0, xmm1
addss xmm0, dword [edi + 0xf4]
movss dword [edi + 0xf4], xmm0
movss xmm0, dword [edi + 0xf8]
maxss xmm0, xmm1
movss xmm1, dword [esp + 0xc]
movss dword [edi + 0xf8], xmm0
mov esi, dword [edi + 0x94]
mov ecx, dword [edi + 0xa0]
movss dword [edi + 0x114], xmm1
movss dword [edi + 0x118], xmm1
lea eax, [ecx - 1]
mov dword [edi + 0x11c], eax
mov eax, dword [edi + 0x120]
lea edx, [ecx + ecx*4]
shl edx, 6
lea eax, [eax + eax*4]
mov ecx, dword [edx + esi - 0x140]
mov edx, dword [edx + esi - 0x13c]
shl eax, 6
sub ecx, dword [eax + esi]
sbb edx, dword [eax + esi + 4]
call fcn.104511a0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [esp + 0x10]
comiss xmm1, dword [0x1122d550]
movss dword [esp + 0x14], xmm1
jbe 0x100d486f
test byte [edi + 0x58], 1
je 0x100d486f
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
je 0x100d486f
test esi, esi
je 0x100d486f
mov ecx, dword [edi + 0xa0]
test ecx, ecx
je 0x100d486f
mov edx, dword [0x11d0d1dc]
mov dword [esp + 0xc], edx
test edx, edx
jne 0x100d44b1
mov ecx, dword [edi + 0x58]
mov edx, 0x1046b870
push 0x10469d90
shr ecx, 0x1f
call fcn.100d29a0
mov dword [0x11d0d1dc], eax
test eax, eax
je 0x100d486f
push 0x1046b890
push eax
call fcn.1003a100
mov eax, dword [0x11d0d1dc]
add esp, 8
mov ecx, dword [edi + 0xa0]
movss xmm1, dword [esp + 0x14]
mov dword [esp + 0xc], eax
ucomiss xmm1, dword [0x11229920]
lahf
test ah, 0x44
jp 0x100d4528
mov eax, dword [edi + 0x120]
lea edx, [ecx + ecx*4]
mov esi, dword [edi + 0x94]
shl edx, 6
mov byte [esp + 0xb], 1
lea eax, [eax + eax*4]
shl eax, 6
mov ecx, dword [edx + esi - 0x140]
mov edx, dword [edx + esi - 0x13c]
sub ecx, dword [eax + esi]
sbb edx, dword [eax + esi + 4]
call fcn.104511a0
mov edx, dword [edi + 0x44]
mov ecx, dword [edi + 0x40]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x1122d540]
movss dword [esp + 0x14], xmm0
call fcn.104511a0
movss xmm1, dword [esp + 0x14]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0x14], xmm1
jmp 0x100d452d
mov byte [esp + 0xb], 0
mov ecx, dword [edi + 0xfc]
xorps xmm2, xmm2
mov eax, ecx
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm1, xmm0
movss dword [esp + 0x20], xmm1
test ecx, ecx
je 0x100d459b
movss xmm0, dword [edi + 0xf4]
divss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100d4578
sqrtsd xmm0, xmm0
jmp 0x100d457d
call fcn.104417f0
cvtsd2ss xmm0, xmm0
xorps xmm1, xmm1
xorps xmm2, xmm2
cvtss2sd xmm1, xmm0
movss xmm0, dword [edi + 0xf0]
divss xmm0, dword [esp + 0x20]
jmp 0x100d45a1
xorps xmm1, xmm1
xorps xmm0, xmm0
mov esi, dword [edi + 0xec]
mov eax, esi
cvtps2pd xmm0, xmm0
shr eax, 0x1f
movsd qword [esp + 0x30], xmm1
movsd qword [esp + 0x38], xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm3, xmm0
movss dword [esp + 0x20], xmm3
test esi, esi
je 0x100d461e
movss xmm0, dword [edi + 0xe4]
xorps xmm1, xmm1
divss xmm0, xmm3
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100d45f8
sqrtsd xmm0, xmm0
jmp 0x100d45fd
call fcn.104417f0
movsd xmm1, qword [esp + 0x30]
xorps xmm2, xmm2
cvtsd2ss xmm0, xmm0
cvtss2sd xmm2, xmm0
movss xmm0, dword [edi + 0xe0]
divss xmm0, dword [esp + 0x20]
jmp 0x100d4621
xorps xmm0, xmm0
sub esp, 0x28
imul eax, esi, 0x3e8
cvtps2pd xmm0, xmm0
mov esi, dword [esp + 0x34]
movsd qword [esp + 0x20], xmm1
movsd xmm1, qword [esp + 0x60]
movsd qword [esp + 0x18], xmm1
movsd qword [esp + 0x10], xmm2
movsd qword [esp + 8], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [esp + 0x3c]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x1046b8d0
push esi
call fcn.1003a100
mov ecx, dword [edi + 0xec]
add esp, 0x30
test ecx, ecx
je 0x100d470a
mov eax, ecx
test eax, eax
je 0x100d46b9
movss xmm1, dword [edi + 0xe0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
jmp 0x100d46bc
xorps xmm1, xmm1
addss xmm1, dword [edi + 0x100]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movss dword [edi + 0x100], xmm1
addsd xmm0, qword [ecx*8 + 0x1122e340]
movss xmm1, dword [edi + 0xe4]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, dword [edi + 0x104]
movss dword [edi + 0x104], xmm1
movups xmmword [edi + 0xe0], xmm0
mov ecx, dword [edi + 0xfc]
test ecx, ecx
je 0x100d4791
mov eax, ecx
test eax, eax
je 0x100d4740
movss xmm1, dword [edi + 0xf0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
jmp 0x100d4743
xorps xmm1, xmm1
addss xmm1, dword [edi + 0x108]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movss dword [edi + 0x108], xmm1
addsd xmm0, qword [ecx*8 + 0x1122e340]
movss xmm1, dword [edi + 0xf4]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, dword [edi + 0x10c]
movss dword [edi + 0x10c], xmm1
movups xmmword [edi + 0xf0], xmm0
inc dword [edi + 0x110]
cmp byte [esp + 0xb], 0
je 0x100d4862
push 0x1046b900
push esi
call fcn.1003a100
mov eax, dword [edi + 0x110]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [edi + 0x10c]
divss xmm0, xmm1
movss dword [esp + 0x14], xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100d47ef
sqrtsd xmm0, xmm0
jmp 0x100d47f4
call fcn.104417f0
movsd qword [esp], xmm0
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x108]
sub esp, 0x18
divss xmm0, dword [esp + 0x2c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [edi + 0x104]
divss xmm0, dword [esp + 0x2c]
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100d4833
sqrtsd xmm0, xmm0
jmp 0x100d4838
call fcn.104417f0
movsd qword [esp + 8], xmm0
movss xmm0, dword [edi + 0x100]
divss xmm0, dword [esp + 0x2c]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x1046b920
push esi
call fcn.1003a100
add esp, 0x28
mov eax, dword [edi + 0xa0]
dec eax
mov dword [edi + 0x120], eax
mov ecx, dword [esp + 0x187c]
mov al, 1
pop edi
pop esi
xor ecx, esp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0xc