Function at 0x100e36f0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1b8
push ebx
push ebp
mov ebp, edx
mov dword [esp + 0x18], ecx
push esi
push edi
mov dword [esp + 0x3c], ebp
cmp dword [ebp + 0x460], 0
jge 0x100e376e
test byte [ebp], 2
lea eax, [esp + 0x6c]
vxorps xmm0, xmm0, xmm0
mov dword [esp + 0x70], 0xffffffff
lea ecx, [ebp + 0x40]
mov dword [esp + 0x74], 0
mov dword [esp + 0x84], 0
vmovss dword [esp + 0x78], xmm0
vmovss dword [esp + 0x7c], xmm0
vmovss dword [esp + 0x80], xmm0
push eax
mov dword [esp + 0x70], 0x1b00d9
je 0x100e375f
mov dword [esp + 0x70], 0x20002
call fcn.1015b670
mov eax, dword [ebp + 0x40]
dec eax
mov dword [ebp + 0x460], eax
cmp dword [ebp + 0x464], 0
jge 0x100e37d3
test byte [ebp], 4
jne 0x100e37d3
vxorps xmm0, xmm0, xmm0
lea eax, [esp + 0x6c]
mov dword [esp + 0x70], 0xffffffff
push eax
lea ecx, [ebp + 0x40]
mov dword [esp + 0x78], 0
vmovss dword [esp + 0x7c], xmm0
vmovss dword [esp + 0x80], xmm0
vmovss dword [esp + 0x84], xmm0
mov dword [esp + 0x88], 0
mov dword [esp + 0x70], 0x400041
call fcn.1015b670
mov eax, dword [ebp + 0x40]
dec eax
mov dword [ebp + 0x464], eax
vxorps xmm0, xmm0, xmm0
mov ecx, ebp
mov dword [ebp + 4], 0
mov dword [ebp + 0x20], 0
mov dword [ebp + 0x1c], 0
vmovups xmmword [ebp + 0x24], xmm0
call fcn.101586d0
mov edi, dword [ebp + 0x4c]
xor ebx, ebx
mov byte [esp + 0x12], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], ebx
mov dword [esp + 0x50], edi
lea edx, [ebx + 8]
test edi, edi
jle 0x100e3849
cmp edi, edx
mov eax, edi
cmovl eax, edx
test eax, eax
jle 0x100e3849
mov ecx, dword [0x10755f08]
test ecx, ecx
je 0x100e3834
inc dword [ecx + 0x370]
imul eax, eax, 0x54
push eax
call fcn.1018b4f6
add esp, 4
mov dword [esp + 0x34], eax
mov edx, 8
mov esi, dword [ebp + 0x34]
mov dword [esp + 0x54], esi
test esi, esi
jle 0x100e3884
cmp esi, 8
mov ecx, esi
cmovl ecx, edx
test ecx, ecx
jle 0x100e3884
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e386f
inc dword [eax + 0x370]
lea eax, [ecx + ecx*2]
shl eax, 3
push eax
call fcn.1018b4f6
add esp, 4
mov dword [esp + 0x30], eax
mov ebx, eax
imul ecx, edi, 0x54
push ecx
push 0
push dword [esp + 0x3c]
call fcn.1017ea60
add esp, 0xc
lea eax, [esi + esi*2]
shl eax, 3
push eax
push 0
push ebx
call fcn.1017ea60
add esp, 0xc
mov dword [esp + 0x1c], 0
cmp dword [ebp + 0x4c], 0
jle 0x100e3a89
mov edi, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x18], eax
add edi, 0x20
mov ebp, dword [ebp + 0x54]
xor edx, edx
add ebp, eax
mov dword [edi + 0x10], 0xffffffff
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0x34], edx
jle 0x100e3acd
or esi, 0xffffffff
mov ebx, eax
mov eax, esi
cmp esi, 0xffffffff
jne 0x100e3908
mov ecx, dword [ebx + 0x3c]
or esi, esi
mov eax, dword [ebp + 0x74]
cmp eax, dword [ecx + edx*4]
jne 0x100e3900
mov dword [edi + 0x10], edx
mov esi, edx
inc edx
mov eax, esi
cmp edx, dword [ebx + 0x34]
jl 0x100e38e7
mov ebx, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x100e3acd
mov eax, dword [ebp]
test eax, eax
je 0x100e3acd
push ecx
mov ecx, dword [esp + 0x24]
lea esi, [edi - 8]
push esi
push dword [ebp + 0xc]
mov dword [esp + 0x7c], eax
lea edx, [esp + 0x78]
mov eax, dword [ebp + 4]
mov dword [esp + 0x78], 1
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], 0
call fcn.1003b4d0
test eax, eax
jne 0x100e3acd
mov ecx, dword [esi]
test ecx, ecx
je 0x100e3acd
call fcn.1003b2c0
test eax, eax
jne 0x100e3acd
mov edx, dword [ebp + 0x40]
xor ecx, ecx
or edx, dword [esp + 0x1cc]
mov eax, 8
test edx, 0x200
mov dword [esi + 4], edx
cmove ecx, eax
test dl, 1
je 0x100e399a
or ecx, 2
test dl, 2
je 0x100e39a5
or ecx, 0x8000
test dl, 4
je 0x100e39ad
or ecx, 0x20
test al, dl
je 0x100e39b9
or ecx, 0x10000
jmp 0x100e39c6
mov eax, ecx
or eax, 0x20000
test dl, 0x10
cmovne ecx, eax
shr edx, 6
and edx, 2
mov dword [edi], ecx
mov dword [esi + 0xc], edx
test dword [esi + 4], 0x100
je 0x100e39e0
or dword [edi], 0x100000
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [edi - 0x20], xmm0
vmovq qword [edi - 0x10], xmm0
vmovss xmm0, dword [ebp + 0x10]
call fcn.101a4a40
push eax
lea ecx, [edi - 0x20]
call fcn.100e2810
mov eax, dword [ebp + 0x40]
mov edx, 0x10226204
shr eax, 8
and al, 1
or byte [esp + 0x12], al
mov eax, dword [edi + 0x10]
lea esi, [eax + eax*2]
mov eax, dword [ebp + 0x30]
test eax, eax
cmovne edx, eax
mov dword [edi + 0xc], edx
cmp word [edx], 0
je 0x100e3a4e
nop dword [eax]
movzx eax, word [edx + 2]
test ax, ax
je 0x100e3a4e
mov ecx, eax
cmp dword [edi + 0x14], ecx
cmovge ecx, dword [edi + 0x14]
add edx, 4
mov dword [edi + 0x14], ecx
cmp word [edx], 0
jne 0x100e3a30
inc dword [ebx + esi*8]
mov ecx, dword [edi + 0x14]
cmp dword [ebx + esi*8 + 4], ecx
mov ebp, dword [esp + 0x3c]
cmovge ecx, dword [ebx + esi*8 + 4]
add edi, 0x54
mov eax, dword [esp + 0x18]
mov dword [ebx + esi*8 + 4], ecx
add eax, 0x78
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
cmp ecx, dword [ebp + 0x4c]
jl 0x100e38c7
mov edi, dword [esp + 0x50]
xor esi, esi
mov dword [esp + 0x28], esi
test edi, edi
jle 0x100e3dec
mov ebp, dword [esp + 0x34]
add ebp, 0x44
mov dword [esp + 0x1c], edi
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 4]
add esi, 0x20
sar esi, 5
lea eax, [eax + eax*2]
mov dword [esp + 0x14], eax
cmp esi, edi
jle 0x100e3af0
test edi, edi
je 0x100e3ad7
mov eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, edi
jmp 0x100e3adc
mov byte [esp + 0x12], 0
jmp 0x100e4a53
mov ecx, 8
cmp ecx, esi
lea edi, [ebp - 8]
mov eax, esi
cmovg eax, ecx
mov ecx, edi
push eax
call fcn.100deee0
jmp 0x100e3af3
lea edi, [ebp - 8]
lea eax, [esi*4]
mov dword [edi], esi
push eax
push 0
push dword [ebp]
call fcn.1017ea60
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp dword [ebx + edx*8 + 0xc], 0
lea edi, [ebx + edx*8]
jne 0x100e3b6a
mov esi, dword [ebx + edx*8 + 4]
mov eax, dword [edi + 0x10]
add esi, 0x20
sar esi, 5
cmp esi, eax
jle 0x100e3b4e
test eax, eax
je 0x100e3b39
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, dword [edi + 0x10]
jmp 0x100e3b3e
mov ecx, 8
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
lea ecx, [edi + 0xc]
push eax
call fcn.100deee0
lea eax, [esi*4]
mov dword [edi + 0xc], esi
push eax
push 0
push dword [edi + 0x14]
call fcn.1017ea60
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov dword [esp + 0x2c], eax
cmp word [eax], 0
je 0x100e3c3c
nop dword [eax + eax]
movzx ecx, word [eax + 2]
test cx, cx
je 0x100e3c38
movzx edi, word [eax]
cmp edi, ecx
ja 0x100e3c23
mov eax, dword [esp + 0x30]
mov esi, edi
mov ebx, edi
sar esi, 5
and ebx, 0x1f
mov ecx, dword [eax + edx*8 + 0x14]
mov eax, 1
shlx eax, eax, ebx
test dword [ecx + esi*4], eax
jne 0x100e3c12
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0x20], eax
test eax, eax
je 0x100e3c12
mov ecx, dword [eax + 0x5c]
test ecx, ecx
je 0x100e3c12
mov eax, dword [ecx + 0xc]
mov edx, edi
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x10]
jae 0x100e3c12
test eax, eax
je 0x100e3c12
inc dword [ebp - 0xc]
mov eax, dword [esp + 0x30]
inc dword [eax + edx*8 + 8]
mov ecx, dword [ebp]
mov eax, dword [ecx + esi*4]
bts eax, ebx
mov dword [ecx + esi*4], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + edx*8 + 0x14]
mov eax, dword [ecx + esi*4]
bts eax, ebx
inc dword [esp + 0x28]
mov dword [ecx + esi*4], eax
mov eax, dword [esp + 0x2c]
inc edi
movzx eax, word [eax + 2]
cmp edi, eax
jle 0x100e3b98
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x2c], eax
cmp word [eax], 0
jne 0x100e3b80
mov ebx, dword [esp + 0x30]
add ebp, 0x54
sub dword [esp + 0x1c], 1
jne 0x100e3aa2
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x50]
add ebp, 0x50
mov dword [esp + 0x18], eax
nop dword [eax]
mov esi, dword [ebp - 0x18]
cmp esi, dword [ebp - 4]
jle 0x100e3cc7
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e3c77
inc dword [eax + 0x370]
mov eax, esi
shl eax, 5
push eax
vzeroupper
call fcn.1018b4f6
mov edx, dword [ebp]
add esp, 4
mov edi, eax
test edx, edx
je 0x100e3cc1
mov ecx, dword [ebp - 8]
shl ecx, 5
push ecx
push edx
push edi
call fcn.10180380
mov ecx, dword [ebp]
add esp, 0xc
test ecx, ecx
je 0x100e3cb8
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e3cb8
dec dword [eax + 0x370]
push ecx
call fcn.10186d6f
add esp, 4
mov dword [ebp], edi
mov dword [ebp - 4], esi
mov ebx, dword [ebp - 0xc]
mov ecx, ebx
mov eax, dword [ebp - 0x14]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x1c], ebx
lea eax, [ebx + eax*4]
mov dword [esp + 0x58], eax
cmp ebx, eax
jae 0x100e3d9d
mov edx, dword [ecx]
mov dword [esp + 0x20], edx
test edx, edx
je 0x100e3d8e
xor edi, edi
nop word [eax + eax]
mov eax, 1
shlx eax, eax, edi
test edx, eax
je 0x100e3d80
mov eax, ecx
mov ecx, dword [ebp - 8]
sub eax, ebx
mov ebx, dword [ebp - 4]
shl eax, 3
and eax, 0xffffffe0
add eax, edi
movzx eax, ax
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [esp + 0x6c], ymm0
mov dword [esp + 0x84], eax
cmp ecx, ebx
jne 0x100e3d62
inc ecx
test ebx, ebx
je 0x100e3d48
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add eax, ebx
jmp 0x100e3d4d
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
lea ecx, [ebp - 8]
vzeroupper
call fcn.100e4be0
mov edx, dword [esp + 0x20]
mov eax, dword [ebp - 8]
vmovdqu ymm0, ymmword [esp + 0x6c]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x5c]
shl eax, 5
add eax, dword [ebp]
vmovdqu ymmword [eax], ymm0
inc dword [ebp - 8]
inc edi
cmp edi, 0x20
jb 0x100e3d00
mov eax, dword [esp + 0x58]
add ecx, 4
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jb 0x100e3ce6
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x100e3dd4
mov eax, dword [0x10755f08]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
test eax, eax
je 0x100e3dc1
dec dword [eax + 0x370]
push ecx
vzeroupper
call fcn.10186d6f
add esp, 4
mov dword [ebp - 0xc], 0
add ebp, 0x54
sub dword [esp + 0x18], 1
jne 0x100e3c60
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
jmp 0x100e3dee
xor esi, esi
mov ebp, dword [esp + 0x54]
test ebp, ebp
jle 0x100e3e3d
lea edi, [ebx + 0x14]
nop dword [eax]
mov ecx, dword [edi]
test ecx, ecx
je 0x100e3e35
mov eax, dword [0x10755f08]
mov dword [edi - 4], 0
mov dword [edi - 8], 0
test eax, eax
je 0x100e3e23
dec dword [eax + 0x370]
push ecx
vzeroupper
call fcn.10186d6f
add esp, 4
mov dword [edi], 0
add edi, 0x18
sub ebp, 1
jne 0x100e3e00
test ebx, ebx
je 0x100e3e64
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e3e50
dec dword [eax + 0x370]
push ebx
vzeroupper
call fcn.10186d6f
add esp, 4
mov dword [esp + 0x30], 0
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test esi, esi
jle 0x100e3ea4
cmp esi, 8
mov eax, esi
mov edx, 8
cmovl eax, edx
test eax, eax
jle 0x100e3ea4
mov ecx, dword [0x10755f08]
test ecx, ecx
je 0x100e3e8f
inc dword [ecx + 0x370]
shl eax, 4
push eax
vzeroupper
call fcn.1018b4f6
add esp, 4
mov dword [esp + 0x1c], eax
mov ecx, eax
shl esi, 4
push esi
push 0
push ecx
vzeroupper
call fcn.1017ea60
xor eax, eax
add esp, 0xc
mov dword [esp + 0x2c], eax
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e3ecb
inc dword [eax + 0x370]
push 0x40000
call fcn.1018b4f6
mov ecx, dword [0x10755f08]
add esp, 4
mov esi, eax
test ecx, ecx
je 0x100e3eea
inc dword [ecx + 0x370]
push 0x20
call fcn.1018b4f6
vmovss xmm0, dword [0x10228684]
mov dword [esp + 0x18], eax
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x2c], 1
mov dword [eax], esi
add esp, 4
mov eax, dword [esp + 0x50]
mov ebp, 8
mov dword [esp + 0x40], ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], edi
test eax, eax
jle 0x100e42ea
mov esi, dword [esp + 0x34]
xor edx, edx
mov ebx, dword [esp + 0x3c]
add esi, 0x48
mov dword [esp + 0x68], edx
mov dword [esp + 0x4c], eax
mov ecx, dword [ebx + 0x54]
add ecx, edx
mov edx, dword [esi - 0x10]
test edx, edx
je 0x100e42c1
mov eax, edi
add edi, edx
shl eax, 4
add eax, dword [esp + 0x1c]
mov dword [esi - 0x20], eax
vmovss xmm1, dword [ecx + 0x44]
vucomiss xmm1, xmm0
mov dword [esp + 0x38], edi
lahf
vmovss dword [esp + 0x20], xmm1
test ah, 0x44
jnp 0x100e3fc8
mov byte [esp + 0x13], 1
xor edi, edi
nop
vxorpd xmm0, xmm0, xmm0
mov eax, edi
shr eax, 0x1f
vcvtsi2sd xmm0, xmm0, edi
vaddsd xmm0, xmm0, qword [eax*8 + 0x10229440]
vcvtsd2ss xmm0, xmm0, xmm0
vmulss xmm0, xmm0, xmm1
call fcn.101a4a40
vmovss xmm1, dword [esp + 0x20]
mov edx, 0xff
movzx ecx, al
cmp eax, edx
cmovbe edx, ecx
mov byte [esp + edi + 0xc8], dl
inc edi
cmp edi, 0x100
jb 0x100e3f80
jmp 0x100e3fcd
mov byte [esp + 0x13], 0
cmp dword [esi], 0
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], 0
jle 0x100e42c1
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x24], 0
xor ebx, ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebx
mov eax, ebx
nop
mov edi, dword [esi + 8]
add edi, ebx
mov ebx, dword [esi - 0x30]
test ebx, ebx
je 0x100e429c
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
je 0x100e429c
mov eax, dword [ecx + 0xc]
mov edx, dword [edi + 0x18]
mov eax, dword [eax + 0xc]
call eax
cmp eax, dword [ebx + 0x10]
jae 0x100e4298
test eax, eax
je 0x100e4298
push dword [esi - 0x28]
mov ecx, dword [esi - 0x30]
mov edx, eax
call fcn.1003a7d0
test eax, eax
jne 0x100e4298
test byte [esi - 0x2c], 0x20
mov eax, dword [esi - 0x30]
mov ebx, dword [eax + 0x54]
je 0x100e405f
mov ecx, ebx
call fcn.1003eeb0
test byte [esi - 0x2c], 0x40
je 0x100e409e
test ebx, ebx
je 0x100e40a9
cmp dword [ebx + 0x48], 0x6f75746c
jne 0x100e409e
lea ecx, [ebx + 0x6c]
mov dword [esp + 0x6c], 0x10000
lea edx, [esp + 0x6c]
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0x366a
mov dword [esp + 0x78], 0x10000
call fcn.1003cb20
lea eax, [ebx + 0x18]
test eax, eax
je 0x100e4298
mov eax, dword [esi - 0x30]
mov ebx, dword [eax + 0x54]
test ebx, ebx
je 0x100e412a
mov eax, dword [ebx + 4]
test eax, eax
je 0x100e412a
mov eax, dword [eax + 0x60]
mov edx, ebx
push dword [esi - 0x24]
mov ecx, dword [eax + 4]
call fcn.1003c150
test eax, eax
jne 0x100e412a
mov eax, dword [esi - 0x30]
vxorps xmm0, xmm0, xmm0
mov ecx, dword [eax + 0x54]
mov eax, dword [ecx + 0x50]
add ecx, 0x4c
mov dword [edi], eax
mov dword [esp + 0x60], ecx
mov eax, dword [ecx]
mov dword [edi + 4], eax
mov eax, dword [esi - 0x30]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x64]
mov dword [edi + 8], eax
mov eax, dword [esi - 0x30]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x68]
neg eax
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0x40]
add eax, 0x3f
and eax, 0xffffffc0
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
vcvtsi2ss xmm0, xmm0, eax
vmovss dword [edi + 0x10], xmm0
cmp byte [ecx + 0x12], 7
sete al
mov byte [edi + 0x14], al
jmp 0x100e4132
mov dword [esp + 0x60], 0
mov ebx, dword [edi + 4]
imul ebx, dword [edi]
mov edx, dword [esp + 0x2c]
shl ebx, 2
lea eax, [ebx + edx]
cmp eax, 0x40000
jle 0x100e4228
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e4162
inc dword [eax + 0x370]
push 0x40000
call fcn.1018b4f6
add esp, 4
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x28], ebp
jne 0x100e420a
test ebp, ebp
je 0x100e418c
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
add eax, ebp
jmp 0x100e4191
mov eax, 8
mov ebp, dword [esp + 0x44]
cmp eax, ebp
cmovg ebp, eax
cmp ebp, dword [esp + 0x40]
jle 0x100e4206
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e41af
inc dword [eax + 0x370]
lea eax, [ebp*4]
push eax
call fcn.1018b4f6
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x20], eax
test edx, edx
je 0x100e41fc
mov ecx, dword [esp + 0x28]
shl ecx, 2
push ecx
push edx
push eax
call fcn.10180380
mov eax, dword [0x10755f08]
add esp, 0xc
test eax, eax
je 0x100e41ec
dec dword [eax + 0x370]
push dword [esp + 0x14]
call fcn.10186d6f
mov eax, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], ebp
jmp 0x100e420a
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
mov dword [ecx + edx*4], eax
inc edx
inc dword [esp + 0x44]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x2c]
jmp 0x100e422c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + eax*4 - 4]
lea eax, [esp + 0xc8]
add ecx, edx
add edx, ebx
mov dword [esp + 0x2c], edx
xor edx, edx
cmp byte [esp + 0x13], dl
mov dword [edi + 0x1c], ecx
cmove eax, edx
push eax
push dword [edi]
push ecx
push dword [esp + 0x6c]
call fcn.100e2a70
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x24]
movzx ecx, word [edi]
movzx edx, ax
mov eax, dword [esi - 0x20]
add cx, dx
mov word [ebx + eax + 4], cx
movzx ecx, word [edi + 4]
mov eax, dword [esi - 0x20]
add cx, dx
mov word [ebx + eax + 6], cx
mov eax, dword [esi - 0x20]
movzx ecx, word [ebx + eax + 6]
movzx eax, word [ebx + eax + 4]
imul ecx, eax
add dword [esp + 0x18], ecx
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
add eax, 0x10
add dword [esp + 0x48], 0x20
inc ebx
cmp ebx, dword [esi]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x24], eax
jl 0x100e4000
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x68]
add esi, 0x54
vmovss xmm0, dword [0x10228684]
mov edi, dword [esp + 0x38]
add edx, 0x78
sub dword [esp + 0x4c], 1
mov dword [esp + 0x68], edx
jne 0x100e3f40
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x3c]
mov esi, dword [ebp + 8]
mov dword [ebp + 0x20], 0
test esi, esi
jg 0x100e434c
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, ecx
vsqrtss xmm0, xmm0, xmm0
vcvttss2si eax, xmm0
inc eax
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vcomiss xmm0, dword [0x102289b8]
jb 0x100e4326
mov esi, 0x1000
jmp 0x100e434c
vcomiss xmm0, dword [0x102289a8]
jb 0x100e4337
mov esi, 0x800
jmp 0x100e434c
vcomiss xmm0, dword [0x10228988]
mov esi, 0x200
mov eax, 0x400
cmovae esi, eax
mov dword [ebp + 0x1c], esi
xor ecx, ecx
sub esi, dword [ebp + 0xc]
mov dword [esp + 0x20], ecx
test esi, esi
jle 0x100e438f
cmp esi, 8
mov eax, esi
mov edx, 8
cmovl eax, edx
test eax, eax
jle 0x100e438f
mov ecx, dword [0x10755f08]
test ecx, ecx
je 0x100e437d
inc dword [ecx + 0x370]
shl eax, 3
push eax
call fcn.1018b4f6
add esp, 4
mov dword [esp + 0x20], eax
mov ecx, eax
mov edx, dword [ebp + 0x1c]
push esi
push ecx
push 0x8000
lea ecx, [esp + 0xa4]
call fcn.100e2f70
mov edi, dword [ebp + 0x40]
xor ebx, ebx
test edi, edi
jle 0x100e43dd
cmp edi, 8
mov eax, edi
mov ecx, 8
cmovl eax, ecx
test eax, eax
jle 0x100e43dd
mov ecx, dword [0x10755f08]
test ecx, ecx
je 0x100e43cf
inc dword [ecx + 0x370]
shl eax, 4
push eax
call fcn.1018b4f6
add esp, 4
mov ebx, eax
mov ecx, edi
shl ecx, 4
push ecx
push 0
push ebx
call fcn.1017ea60
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x40], esi
jle 0x100e4424
xor ecx, ecx
lea edx, [ebx + 6]
nop word [eax + eax]
mov eax, dword [ebp + 0x48]
lea ecx, [ecx + 0x1c]
inc esi
lea edx, [edx + 0x10]
movzx eax, word [ecx + eax - 0x1c]
mov word [edx - 0x12], ax
mov eax, dword [ebp + 0x48]
movzx eax, word [eax + ecx - 0x1a]
mov word [edx - 0x10], ax
cmp esi, dword [ebp + 0x40]
jl 0x100e4400
push edi
mov edx, ebx
lea ecx, [esp + 0x9c]
call fcn.100e34d0
test edi, edi
jle 0x100e447b
xor esi, esi
lea edx, [ebx + 0xa]
nop dword [eax]
cmp dword [edx + 2], 0
je 0x100e4470
mov ecx, dword [ebp + 0x48]
movzx eax, word [edx - 2]
mov word [esi + ecx + 4], ax
mov ecx, dword [ebp + 0x48]
movzx eax, word [edx]
mov word [esi + ecx + 6], ax
movzx ecx, word [edx - 4]
movzx eax, word [edx]
add ecx, eax
cmp dword [ebp + 0x20], ecx
cmovge ecx, dword [ebp + 0x20]
mov dword [ebp + 0x20], ecx
add esi, 0x1c
add edx, 0x10
sub edi, 1
jne 0x100e4440
test ebx, ebx
je 0x100e4497
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e448e
dec dword [eax + 0x370]
push ebx
call fcn.10186d6f
add esp, 4
mov ebx, dword [esp + 0x50]
test ebx, ebx
jle 0x100e44f8
mov esi, dword [esp + 0x34]
add esi, 0x38
mov eax, dword [esi]
test eax, eax
je 0x100e44ec
mov edx, dword [esi - 0x10]
lea ecx, [esp + 0x98]
push eax
call fcn.100e34d0
xor edi, edi
cmp dword [esi], edi
jle 0x100e44ec
xor edx, edx
mov eax, dword [esi - 0x10]
cmp dword [eax + edx + 0xc], 0
je 0x100e44e4
movzx ecx, word [eax + edx + 0xa]
movzx eax, word [eax + edx + 6]
add ecx, eax
cmp dword [ebp + 0x20], ecx
cmovge ecx, dword [ebp + 0x20]
mov dword [ebp + 0x20], ecx
inc edi
add edx, 0x10
cmp edi, dword [esi]
jl 0x100e44c4
add esi, 0x54
sub ebx, 1
jne 0x100e44a6
mov ebx, dword [esp + 0x50]
test byte [ebp], 1
mov eax, dword [ebp + 0x20]
jne 0x100e4526
lea ecx, [eax - 1]
mov eax, ecx
sar eax, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or ecx, eax
mov eax, ecx
sar eax, 4
or ecx, eax
mov eax, ecx
sar eax, 8
or ecx, eax
mov eax, ecx
sar eax, 0x10
or eax, ecx
mov ecx, dword [ebp + 0x1c]
inc eax
vmovss xmm2, dword [0x10228684]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, ecx
vdivss xmm1, xmm2, xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
imul ecx, eax
cmp byte [esp + 0x12], 0
vdivss xmm0, xmm2, xmm0
mov dword [ebp + 0x20], eax
mov eax, dword [0x10755f08]
vmovss dword [ebp + 0x24], xmm1
vmovss dword [ebp + 0x28], xmm0
je 0x100e4588
shl ecx, 2
test eax, eax
je 0x100e4573
inc dword [eax + 0x370]
push ecx
call fcn.1018b4f6
mov ecx, dword [ebp + 0x20]
imul ecx, dword [ebp + 0x1c]
mov dword [ebp + 0x18], eax
shl ecx, 2
jmp 0x100e45a2
test eax, eax
je 0x100e4592
inc dword [eax + 0x370]
push ecx
call fcn.1018b4f6
mov ecx, dword [ebp + 0x20]
imul ecx, dword [ebp + 0x1c]
mov dword [ebp + 0x14], eax
add esp, 4
push ecx
push 0
push eax
call fcn.1017ea60
xor al, al
add esp, 0xc
mov byte [esp + 0x13], al
test ebx, ebx
jle 0x100e4945
mov eax, dword [esp + 0x34]
xor ecx, ecx
add eax, 8
mov dword [esp + 0x58], ecx
mov dword [esp + 0x40], eax
mov edx, ebx
mov dword [esp + 0x5c], ebx
cmp dword [eax + 0x30], 0
je 0x100e4926
mov ebx, dword [ebp + 0x54]
vmovss xmm0, dword [eax - 4]
add ebx, ecx
vmovss dword [esp + 0x54], xmm0
vmovss xmm0, dword [eax]
mov dword [esp + 0x94], ebx
cmp byte [ebx + 0x3c], 0
mov ecx, dword [ebx + 0x74]
mov dword [esp + 0x64], ecx
vmovss dword [esp + 0x38], xmm0
lea esi, [ecx + 0x38]
lea edi, [ecx + 0x44]
jne 0x100e4643
call fcn.10159850
mov ecx, dword [esp + 0x64]
mov eax, dword [ebx + 0x10]
vmovss xmm0, dword [esp + 0x54]
vmovss dword [edi], xmm0
vmovss xmm0, dword [esp + 0x38]
mov dword [ecx + 0x10], eax
xor eax, eax
mov dword [ecx + 0x34], ebx
mov word [esi], ax
mov dword [ecx + 0x30], ebp
vmovss dword [ecx + 0x48], xmm0
vmovss xmm0, dword [edi]
vaddss xmm0, xmm0, dword [0x102285c0]
inc word [esi]
vmovss xmm1, dword [ebx + 0x28]
vcvttss2si eax, xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
mov eax, dword [esp + 0x40]
vaddss xmm2, xmm0, dword [ebx + 0x2c]
mov ebx, dword [ebp + 0xc]
vmovss dword [esp + 0x60], xmm1
cmp dword [eax + 0x30], 0
vmovss dword [esp + 0x2c], xmm2
mov dword [esp + 0x24], ebx
mov dword [esp + 0x54], 0
jle 0x100e4917
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
nop dword [eax]
mov edi, dword [eax + 0x48]
mov eax, dword [eax + 0x20]
add edi, edx
add eax, ecx
cmp word [eax + 4], 0
jne 0x100e46bc
cmp word [eax + 6], 0
je 0x100e48f3
movzx ecx, word [eax + 8]
movzx eax, word [eax + 0xa]
add ecx, ebx
mov esi, dword [ebp + 0x1c]
add eax, ebx
mov ebx, dword [esp + 0x3c]
mov edx, dword [edi]
mov ebp, dword [edi + 0x1c]
mov dword [esp + 0x68], eax
mov eax, esi
imul eax, dword [esp + 0x68]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x4c], esi
test ecx, ecx
je 0x100e4753
mov ebx, dword [esp + 0x18]
xor esi, esi
add ebx, eax
mov dword [esp + 0x38], esi
add ebx, ecx
mov ecx, dword [edi + 4]
test ecx, ecx
jle 0x100e47d8
lea ecx, [edx*4]
mov eax, edx
mov dword [esp + 0x8c], ecx
xor ecx, ecx
mov edx, eax
test eax, eax
jle 0x100e4735
lea esi, [ebp + 3]
mov al, byte [esi]
lea esi, [esi + 4]
mov byte [ecx + ebx], al
inc ecx
mov edx, dword [edi]
cmp ecx, edx
jl 0x100e4722
mov esi, dword [esp + 0x38]
add ebx, dword [esp + 0x4c]
inc esi
add ebp, dword [esp + 0x8c]
mov eax, edx
mov ecx, dword [edi + 4]
mov dword [esp + 0x38], esi
cmp esi, ecx
jl 0x100e4717
jmp 0x100e47d8
mov ecx, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x38], 0
mov eax, dword [ebx + 0x18]
lea eax, [eax + ecx*4]
mov ecx, dword [edi + 4]
mov dword [esp + 0x4c], eax
test ecx, ecx
jle 0x100e47d8
lea ecx, [esi*4]
mov ebx, edx
mov dword [esp + 0x8c], ecx
lea ecx, [edx*4]
mov dword [esp + 0x90], ecx
xor esi, esi
mov edx, ebx
test ebx, ebx
jle 0x100e47b4
mov ebx, ebp
mov ecx, eax
sub ebx, eax
nop
mov eax, dword [ecx + ebx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
inc esi
mov edx, dword [edi]
cmp esi, edx
jl 0x100e47a0
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x38]
mov ebx, edx
add eax, dword [esp + 0x8c]
inc esi
add ebp, dword [esp + 0x90]
mov ecx, dword [edi + 4]
mov dword [esp + 0x38], esi
mov dword [esp + 0x4c], eax
cmp esi, ecx
jl 0x100e4790
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [edi + 8]
mov ebp, dword [esp + 0x3c]
sub esp, 0x20
vaddss xmm3, xmm0, xmm1
vmovss xmm1, dword [0x10228684]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [edi + 0xc]
vaddss xmm4, xmm0, xmm2
mov esi, dword [esp + 0x88]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [ebp + 0x20]
mov ebx, dword [esp + 0x38]
vdivss xmm2, xmm1, xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [ebp + 0x1c]
vdivss xmm1, xmm1, xmm0
vmovss xmm0, dword [edi + 0x10]
vmovss dword [esp + 0x1c], xmm0
vxorps xmm0, xmm0, xmm0
lea eax, [ecx + esi]
vcvtsi2ss xmm0, xmm0, eax
vmulss xmm0, xmm0, xmm2
vmovss dword [esp + 0x18], xmm0
vxorps xmm0, xmm0, xmm0
lea eax, [edx + ebx]
vcvtsi2ss xmm0, xmm0, eax
vmulss xmm0, xmm0, xmm1
vmovss dword [esp + 0x14], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, esi
vmulss xmm0, xmm0, xmm2
vmovss dword [esp + 0x10], xmm0
movzx eax, word [edi + 0x18]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, ebx
mov ebx, dword [esp + 0x84]
vmulss xmm0, xmm0, xmm1
vmovss dword [esp + 0xc], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, ecx
vaddss xmm0, xmm0, xmm4
vmovss dword [esp + 8], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, edx
vaddss xmm0, xmm0, xmm3
vmovss dword [esp + 4], xmm0
vmovss dword [esp], xmm4
push eax
push dword [esp + 0xb8]
mov ecx, ebx
call fcn.10159d00
cmp byte [edi + 0x14], 0
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x28]
vmovss xmm1, dword [esp + 0x60]
vmovss xmm2, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
lea eax, [eax + eax*4]
mov ebx, dword [esp + 0x24]
je 0x100e48ef
or dword [ecx + eax*8 - 0x28], 1
mov byte [esp + 0x13], 1
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x54]
add edx, 0x20
mov eax, dword [esp + 0x40]
inc edi
add ecx, 0x10
mov dword [esp + 0x54], edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ecx
cmp edi, dword [eax + 0x30]
jl 0x100e46a0
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [eax + 0x20], 0
add eax, 0x54
add ecx, 0x78
sub edx, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
jne 0x100e45d6
mov al, byte [esp + 0x13]
mov ebx, dword [esp + 0x28]
xor esi, esi
mov edi, dword [esp + 0x14]
mov byte [ebp + 0x11], al
test ebx, ebx
jle 0x100e497a
mov ecx, dword [edi + esi*4]
test ecx, ecx
je 0x100e496c
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e496c
dec dword [eax + 0x370]
push ecx
call fcn.10186d6f
inc esi
add esp, 4
cmp esi, ebx
jl 0x100e4956
mov ebx, dword [esp + 0x50]
test ebx, ebx
jle 0x100e49e7
mov esi, dword [esp + 0x34]
add esi, 0x18
nop dword [eax]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x100e49af
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e49a6
dec dword [eax + 0x370]
push ecx
call fcn.10186d6f
add esp, 4
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x100e49ce
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e49c5
dec dword [eax + 0x370]
push ecx
call fcn.10186d6f
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x100e49df
call fcn.1003bac0
mov dword [esi], 0
add esi, 0x54
sub ebx, 1
jne 0x100e4990
mov ecx, ebp
call fcn.101593e0
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x12], 1
test ecx, ecx
je 0x100e4a13
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e4a0a
dec dword [eax + 0x370]
push ecx
call fcn.10186d6f
add esp, 4
test edi, edi
je 0x100e4a2f
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e4a26
dec dword [eax + 0x370]
push edi
call fcn.10186d6f
add esp, 4
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x100e4a4f
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e4a46
dec dword [eax + 0x370]
push ecx
call fcn.10186d6f
add esp, 4
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x100e4a6f
mov eax, dword [0x10755f08]
test eax, eax
je 0x100e4a66
dec dword [eax + 0x370]
push ebx
call fcn.10186d6f
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100e4a90
mov ecx, dword [0x10755f08]
test ecx, ecx
je 0x100e4a87
dec dword [ecx + 0x370]
push eax
call fcn.10186d6f
add esp, 4
mov al, byte [esp + 0x12]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b8
ret 4