Function at 0x100d8a60
Capabilities:
Access peb ldr_data
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101f002d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x238
mov eax, dword [0x102289dc]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x14]
mov edi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 0x18]
mov dword [ebp - 0x16c], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x184], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebx + 0x28]
push edx
mov dword [ebp - 0x1d0], eax
mov eax, dword [ebx + 0x2c]
push edi
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xd8]
push ecx
push eax
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x10c], edi
mov dword [ebp - 0x1bc], edx
mov dword [ebp - 0x108], esi
call fcn.101b8bc0
mov ecx, dword [ebp - 0xd8]
add esp, 0x10
test ecx, ecx
je 0x100d8b1b
mov eax, dword [ebp - 0x184]
mov dword [eax], ecx
jmp 0x100dba17
mov ecx, dword [ebp - 0x110]
cmp edi, dword [ecx + 0x24]
jb 0x100dba35
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ecx]
sub eax, edi
lea edi, [eax + 1]
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0xec], edi
lea edx, [eax + eax*4]
shl edx, 3
add ecx, edx
mov dword [ebp - 0x150], edx
cmp byte [ebx + 0x24], 0
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x114], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x134], eax
mov dword [ebp - 0xf0], eax
jne 0x100d8e58
cmp edi, 1
jne 0x100d8e58
cmp dword [esi], 0
je 0x100d8e47
xor edi, edi
xor eax, eax
mov dword [ebp - 0x1c8], edi
mov dword [ebp - 0x1c4], edi
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x1bc]
push eax
lea eax, [ebp - 0xdc]
push eax
push ecx
call fcn.100dcdd0
mov eax, dword [ebp - 0x1bc]
add esp, 0xc
sub eax, dword [ebp - 0xdc]
inc eax
mov dword [ebp - 0xd4], eax
cmp eax, 0x10000
ja 0x100d8e47
mov dword [ebp - 0xd8], edi
test eax, eax
je 0x100d8c0e
lea ecx, [ebp - 0xd8]
push ecx
push eax
lea ecx, [ebp - 0x1c8]
call fcn.10030ac0
mov eax, dword [ebp - 0x1c0]
mov edi, dword [ebp - 0x1c8]
mov dword [ebp - 0x160], eax
xor edx, edx
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0x134], edx
jbe 0x100d8ca9
nop dword [eax + eax]
mov eax, dword [ebp - 0x110]
mov eax, dword [eax]
add eax, dword [ebp - 0x150]
mov ecx, dword [eax + 0x10]
imul ecx, dword [ebp - 0xcc]
add ecx, dword [eax + 0x14]
mov dword [ebp - 0xd8], ecx
xor ecx, ecx
cmp dword [ebp - 0x11c], ecx
jbe 0x100d8c94
nop dword [eax + eax]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + ecx*4]
sub eax, dword [ebp - 0xdc]
cmp dword [edi + eax*4], 0
jne 0x100d8c8b
inc edx
mov dword [edi + eax*4], 1
mov dword [ebp - 0xe4], edx
cmp edx, dword [esi]
jg 0x100d8e01
inc ecx
cmp ecx, dword [ebp - 0x11c]
jb 0x100d8c60
mov eax, dword [ebp - 0xcc]
inc eax
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0x134]
jb 0x100d8c30
push 4
push 1
push edx
lea ecx, [ebp - 0x64]
call fcn.10199ce0
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x40], 0
mov dword [esi], eax
xor edx, edx
mov esi, dword [ebp - 0xd4]
xor ecx, ecx
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 1
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0xd8], eax
test esi, esi
je 0x100d8d17
cmp dword [edi + ecx*4], 0
je 0x100d8d12
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd8]
add eax, ecx
mov dword [esi + edx*4], eax
mov esi, dword [ebp - 0xd4]
mov dword [edi + ecx*4], edx
inc edx
inc ecx
cmp ecx, esi
jb 0x100d8cf1
xor esi, esi
mov dword [ebp - 0xe4], esi
cmp dword [ebp - 0x134], esi
jbe 0x100d8d89
nop word [eax + eax]
mov eax, dword [ebp - 0x110]
xor ecx, ecx
mov eax, dword [eax]
add eax, dword [ebp - 0x150]
mov edx, dword [eax + 0x10]
imul edx, esi
add edx, dword [eax + 0x14]
cmp dword [ebp - 0x11c], ecx
jbe 0x100d8d7a
mov esi, dword [ebp - 0x11c]
nop word [eax + eax]
mov eax, dword [edx + ecx*4]
sub eax, dword [ebp - 0xdc]
mov eax, dword [edi + eax*4]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, esi
jb 0x100d8d60
mov esi, dword [ebp - 0xe4]
inc esi
mov dword [ebp - 0xe4], esi
cmp esi, dword [ebp - 0x134]
jb 0x100d8d30
mov eax, dword [ebp - 0x1d0]
lea ecx, [ebp - 0x64]
push ecx
lea ecx, [ebp - 0x12c]
mov dword [eax], 0
mov eax, dword [ebp - 0x110]
inc dword [eax + 0x24]
push dword [eax]
push ecx
mov ecx, eax
call fcn.100d7b60
mov esi, dword [ebp - 0x184]
mov dword [esi], 0
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 2
test eax, eax
je 0x100d8dd2
push eax
call fcn.100de900
add esp, 4
test edi, edi
je 0x100d8e40
mov ecx, dword [ebp - 0x160]
mov eax, edi
sub ecx, edi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100d8e36
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100d8e36
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov esi, dword [ebp - 0x184]
mov dword [esi], 1
test edi, edi
je 0x100d8e40
mov ecx, dword [ebp - 0x160]
mov eax, edi
sub ecx, edi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100d8e36
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d8dfb
push ecx
push edi
call fcn.101e8bf4
add esp, 8
mov eax, esi
jmp 0x100dba17
mov eax, dword [ebp - 0x184]
mov dword [eax], 1
jmp 0x100dba17
lea ecx, [ebp - 0x244]
call fcn.101b3e40
cmp byte [ebx + 0x24], 0
mov dword [ebp - 4], 3
je 0x100d8ef7
mov eax, dword [ebp - 0x110]
lea ecx, [ebp - 0x68]
push edi
push dword [eax + 0x20]
push dword [ebp - 0x134]
push dword [ebp - 0x11c]
call fcn.101b3cf0
push eax
lea ecx, [ebp - 0x244]
call fcn.101b3ea0
lea ecx, [ebp - 0x68]
call fcn.100281a0
test edi, edi
je 0x100d8ef7
mov dword [ebp - 0xe4], edi
xor esi, esi
mov edi, dword [ebp - 0x150]
nop dword [eax + eax]
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x244]
add ecx, esi
push ecx
mov eax, dword [eax]
add eax, edi
push eax
call fcn.10026830
add esp, 8
add esi, 0x28
add edi, 0x28
sub dword [ebp - 0xe4], 1
jne 0x100d8ec0
mov edi, dword [ebp - 0xec]
mov esi, dword [ebp - 0x108]
mov eax, dword [ebp - 0xe0]
push 0x1c
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
mov dword [eax], 0
xor al, al
mov byte [ebp - 0x101], al
call fcn.101e8bc4
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x140], eax
xor eax, eax
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x188], eax
lea eax, [ebp - 0xcd]
mov byte [ebp - 4], 5
push eax
push edi
lea ecx, [ebp - 0x180]
call fcn.100318a0
xor eax, eax
mov byte [ebp - 4], 6
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x1b0], eax
test edi, edi
je 0x100d8ff0
cmp edi, 0x3fffffff
ja 0x100dba56
push edi
lea ecx, [ebp - 0x1b8]
call fcn.1002ece0
lea ecx, [edi*4]
mov dword [ebp - 0x120], eax
push ecx
push 0
lea edx, [ecx + eax]
mov dword [ebp - 0x1b8], eax
push eax
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x1b0], edx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x118]
add esp, 0xc
mov dword [ebp - 0x1b4], eax
xor eax, eax
mov byte [ebp - 4], 7
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], eax
test edi, edi
je 0x100d90a5
cmp edi, 0x3fffffff
ja 0x100dba5b
lea eax, [edi*4]
cmp eax, 0x1000
jb 0x100d905e
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x100dba60
push ecx
call fcn.101e8bc4
add esp, 4
test eax, eax
je 0x100db92d
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
lea eax, [edi*4]
jmp 0x100d9078
test eax, eax
je 0x100d9076
push eax
call fcn.101e8bc4
mov ecx, eax
add esp, 4
lea eax, [edi*4]
jmp 0x100d9078
xor ecx, ecx
push eax
lea edx, [eax + ecx]
mov dword [ebp - 0x138], ecx
push 0
push ecx
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1c0], edx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x1c0]
add esp, 0xc
mov dword [ebp - 0x1c4], eax
cmp byte [ebx + 0x24], 0
mov byte [ebp - 4], 8
je 0x100d9803
mov eax, dword [ebp - 0x110]
mov esi, dword [ebp - 0x16c]
mov ecx, esi
push dword [eax + 0x20]
mov eax, dword [ebp - 0x134]
imul eax, dword [ebp - 0x11c]
push eax
call fcn.100d8240
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x34]
mov ecx, dword [ebp - 0xe0]
sar eax, 2
push 0x20
mov dword [ebp - 0x130], 0
mov dword [ecx], eax
mov dword [ebp - 0x12c], 0
call fcn.101e8bc4
add esp, 4
mov dword [ebp - 0x124], eax
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x134], 2
mov edx, 1
mov byte [ebp - 4], 9
mov dword [ebp - 0xfc], edx
jbe 0x100d952d
mov esi, dword [ebp - 0x180]
mov dword [ebp - 0xf4], esi
nop dword [eax + eax]
mov dword [ebp - 0xe4], 0
test edi, edi
je 0x100d91be
mov esi, dword [ebp - 0x150]
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebp - 0x110]
lea esi, [esi + 0x28]
mov edi, dword [ebp - 0x138]
mov ecx, dword [eax]
mov eax, dword [ecx + esi - 0x18]
imul eax, edx
add eax, dword [ecx + esi - 0x14]
mov ecx, dword [ebp - 0xe4]
mov dword [edi + ecx*4], eax
inc ecx
mov edi, dword [ebp - 0xec]
mov dword [ebp - 0xe4], ecx
cmp ecx, edi
jb 0x100d9170
mov esi, dword [ebp - 0x180]
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x11c], 2
mov edx, 1
mov dword [ebp - 0xf8], edx
jbe 0x100d9511
xor ecx, ecx
test edi, edi
je 0x100d9214
nop dword [eax]
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + edx*4]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, edi
jae 0x100d91fc
mov esi, dword [ebp - 0x180]
jmp 0x100d91e0
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x124], eax
movaps xmm0, xmmword [0x102059b0]
mov al, 1
movups xmmword [ebp - 0x5c], xmm0
xor esi, esi
mov byte [ebp - 0xcd], al
movaps xmm0, xmmword [0x10205a20]
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0xe4], esi
nop word [eax + eax]
test al, al
je 0x100d94ef
mov ecx, dword [ebp + esi*8 - 0x5c]
xor edx, edx
mov dword [ebp - 0x10c], ecx
mov ecx, dword [ebp + esi*8 - 0x58]
mov dword [ebp - 0xd8], ecx
test edi, edi
je 0x100d92f4
mov ecx, dword [ebp - 0x150]
mov dword [ebp - 0xdc], ecx
test al, al
je 0x100d92ee
mov eax, dword [ebp - 0x110]
lea esi, [edx*4]
mov edi, dword [ebp - 0xf4]
inc edx
add dword [ebp - 0xdc], 0x28
mov dword [ebp - 0xe8], edx
xor edx, edx
mov eax, dword [eax]
add eax, ecx
mov ecx, dword [ebp - 0xd8]
add ecx, dword [ebp - 0xfc]
imul ecx, dword [eax + 0x10]
add ecx, dword [eax + 0x14]
mov eax, dword [ebp - 0x10c]
add eax, dword [ebp - 0xf8]
mov ecx, dword [ecx + eax*4]
cmp ecx, dword [esi + edi]
movzx eax, byte [ebp - 0xcd]
mov edi, dword [ebp - 0xec]
cmove edx, eax
mov ecx, dword [ebp - 0xdc]
mov al, dl
mov edx, dword [ebp - 0xe8]
mov byte [ebp - 0xcd], al
cmp edx, edi
jb 0x100d9272
mov esi, dword [ebp - 0xe4]
inc esi
mov dword [ebp - 0xe4], esi
cmp esi, 4
jl 0x100d9240
test al, al
je 0x100d94ef
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x17c]
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xcc], ecx
mov eax, dword [ecx + 4]
mov dword [ebp - 0xd4], eax
cmp byte [eax + 0xd], 0
jne 0x100d93d3
mov edi, dword [ebp - 0xf4]
mov dword [ebp - 0xdc], eax
nop word [eax + eax]
mov esi, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xd4], eax
mov eax, edi
mov dword [ebp - 0xd8], esi
cmp ecx, esi
je 0x100d9388
cmp eax, edx
je 0x100d93a7
mov edx, dword [ecx]
cmp edx, dword [eax]
mov edx, dword [ebp - 0x17c]
jl 0x100d938c
jg 0x100d93a7
add ecx, 4
add eax, 4
cmp ecx, dword [ebp - 0xd8]
jne 0x100d9368
cmp eax, edx
je 0x100d93a7
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x100], 0
mov eax, dword [eax + 8]
jmp 0x100d93c1
mov eax, dword [ebp - 0xdc]
mov ecx, eax
mov dword [ebp - 0x100], 1
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
mov dword [ebp - 0xdc], eax
je 0x100d9350
mov edi, dword [ebp - 0xec]
cmp byte [ecx + 0xd], 0
jne 0x100d943c
mov esi, dword [ecx + 0x14]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0xe4], esi
cmp eax, edx
je 0x100d9412
nop
cmp ecx, esi
je 0x100d940e
mov esi, dword [eax]
cmp esi, dword [ecx]
jl 0x100d943c
jg 0x100d9416
mov esi, dword [ebp - 0xe4]
add eax, 4
add ecx, 4
cmp eax, edx
jne 0x100d93f0
jmp 0x100d9412
cmp eax, edx
jne 0x100d9416
cmp ecx, esi
jne 0x100d943c
mov eax, dword [ebp - 0xcc]
inc dword [eax + 0x1c]
mov esi, dword [ebp - 0x180]
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0x124], eax
jmp 0x100d94f5
cmp dword [ebp - 0x12c], 0x7ffffff
je 0x100dba65
lea eax, [ebp - 0x130]
mov dword [ebp - 0x168], eax
push 0x20
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x164], 0
call fcn.101e8bc4
mov edi, eax
add esp, 4
mov dword [ebp - 0x164], edi
lea eax, [ebp - 0x180]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [edi + 0x10]
call fcn.10031790
mov eax, dword [ebp - 0x124]
lea ecx, [ebp - 0x130]
push edi
push dword [ebp - 0x100]
mov dword [edi + 0x1c], 0
push dword [ebp - 0xd4]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov word [edi + 0xc], 0
mov byte [ebp - 4], 9
mov dword [ebp - 0x164], 0
call fcn.10051f30
mov edi, dword [ebp - 0xec]
inc dword [eax + 0x1c]
mov esi, dword [ebp - 0x180]
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0x124], eax
jmp 0x100d94f5
mov esi, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf8]
inc edx
mov dword [ebp - 0xf8], edx
lea eax, [edx + 1]
cmp eax, dword [ebp - 0x11c]
jb 0x100d91d6
mov edx, dword [ebp - 0xfc]
inc edx
mov dword [ebp - 0xfc], edx
lea eax, [edx + 1]
cmp eax, dword [ebp - 0x134]
jb 0x100d9150
mov ecx, dword [ebp - 0x110]
mov eax, dword [ecx + 0x1c]
imul eax, dword [ecx + 0x18]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101f6b50]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x101f7688]
addss xmm0, dword [0x10202668]
call fcn.101e8cb0
mov edx, eax
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0xf8], edx
mov esi, dword [eax]
mov dword [ebp - 0xdc], esi
cmp byte [esi + 0xd], 0
jne 0x100d97d2
nop word [eax + eax]
lea ecx, [esi + 0x10]
mov dword [ebp - 0x10c], ecx
cmp dword [ecx + 0xc], edx
jbe 0x100d976f
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xe4], eax
mov edx, dword [eax + 4]
mov dword [ebp - 0xd4], edx
cmp byte [edx + 0xd], 0
jne 0x100d9656
mov edi, dword [ecx]
mov esi, edx
mov edx, dword [ecx + 4]
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xcc], edx
mov ecx, dword [esi + 0x10]
mov eax, edi
mov dword [ebp - 0xd4], esi
cmp ecx, dword [esi + 0x14]
je 0x100d9611
cmp eax, edx
je 0x100d962a
mov edx, dword [ecx]
cmp edx, dword [eax]
mov edx, dword [ebp - 0xcc]
jl 0x100d9615
jg 0x100d962a
add ecx, 4
add eax, 4
cmp ecx, dword [esi + 0x14]
jne 0x100d95f4
cmp eax, edx
je 0x100d962a
mov esi, dword [esi + 8]
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x100], 0
jmp 0x100d963e
mov eax, esi
mov dword [ebp - 0x100], 1
mov esi, dword [esi]
mov dword [ebp - 0xe4], eax
cmp byte [esi + 0xd], 0
mov edi, dword [ebp - 0xd8]
je 0x100d95e4
mov esi, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x10c]
cmp byte [eax + 0xd], 0
jne 0x100d96a7
mov edi, dword [ecx + 4]
mov edx, dword [eax + 0x14]
mov ecx, dword [ecx]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x10c], edx
mov dword [ebp - 0xd8], edi
cmp ecx, edi
je 0x100d969f
cmp eax, edx
je 0x100d972d
mov edx, dword [ecx]
cmp edx, dword [eax]
jl 0x100d96a7
jg 0x100d972d
mov edx, dword [ebp - 0x10c]
add ecx, 4
add eax, 4
cmp ecx, dword [ebp - 0xd8]
jne 0x100d9677
cmp eax, edx
je 0x100d972d
cmp dword [ebp - 0x13c], 0x9249249
je 0x100dba65
lea eax, [ebp - 0x140]
mov dword [ebp - 0x168], eax
push 0x1c
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x164], 0
call fcn.101e8bc4
mov edi, eax
add esp, 4
mov dword [ebp - 0x164], edi
lea eax, [esi + 0x10]
mov byte [ebp - 4], 0xd
lea ecx, [edi + 0x10]
push eax
call fcn.10031790
mov eax, dword [ebp - 0xe8]
lea ecx, [ebp - 0x140]
push edi
push dword [ebp - 0x100]
mov dword [edi], eax
push dword [ebp - 0xd4]
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov word [edi + 0xc], 0
mov byte [ebp - 4], 9
mov dword [ebp - 0x164], 0
call fcn.10051f30
mov edi, dword [ebp - 0x18c]
lea eax, [esi + 0x10]
push eax
cmp edi, dword [ebp - 0x160]
je 0x100d9751
mov ecx, edi
call fcn.10031790
add edi, 0xc
mov dword [ebp - 0x18c], edi
jmp 0x100d9769
push edi
lea ecx, [ebp - 0x190]
call fcn.100d6bc0
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x160], eax
mov edx, dword [ebp - 0xf8]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x100d979b
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x100d9791
cmp esi, dword [eax + 8]
jne 0x100d9791
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x100d9781
mov esi, eax
mov dword [ebp - 0xdc], esi
jmp 0x100d97c2
mov esi, eax
mov dword [ebp - 0xdc], esi
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x100d97c2
nop dword [eax + eax]
mov eax, dword [ecx]
mov esi, ecx
mov dword [ebp - 0xdc], esi
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x100d97b0
cmp byte [esi + 0xd], 0
je 0x100d9590
mov eax, dword [ebp - 0x130]
push dword [eax + 4]
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 8
push eax
mov ecx, eax
call fcn.100d6e10
push 0x20
push dword [ebp - 0x130]
call fcn.101e8bf4
mov edi, dword [ebp - 0xec]
add esp, 8
mov esi, dword [ebp - 0x108]
xor eax, eax
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x134], eax
jbe 0x100d9a68
xor edx, edx
test edi, edi
je 0x100d9857
mov esi, dword [ebp - 0x150]
mov eax, dword [ebp - 0x110]
lea esi, [esi + 0x28]
mov ecx, dword [eax]
mov eax, dword [ecx + esi - 0x18]
imul eax, dword [ebp - 0x100]
add eax, dword [ecx + esi - 0x14]
mov ecx, dword [ebp - 0x138]
mov dword [ecx + edx*4], eax
inc edx
cmp edx, edi
jb 0x100d9823
mov esi, dword [ebp - 0x108]
mov eax, dword [ebp - 0x100]
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
cmp dword [ebp - 0x11c], ecx
jbe 0x100d9a55
nop dword [eax + eax]
cmp byte [ebx + 0x24], 0
je 0x100d9884
mov eax, dword [ebp - 0x13c]
cmp eax, dword [esi]
jae 0x100d9a4f
xor edx, edx
test edi, edi
je 0x100d98b0
nop word [eax + eax]
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x180]
mov dword [eax + edx*4], ecx
inc edx
mov ecx, dword [ebp - 0xdc]
cmp edx, edi
jb 0x100d9890
mov ecx, dword [ebp - 0x140]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xd4], 0
mov eax, dword [ecx + 4]
mov dword [ebp - 0xcc], eax
cmp byte [eax + 0xd], 0
jne 0x100d9931
mov esi, eax
nop word [eax + eax]
push dword [ebp - 0x17c]
mov dword [ebp - 0xcc], esi
push dword [ebp - 0x180]
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.100d7d60
add esp, 0x10
test al, al
je 0x100d990f
mov esi, dword [esi + 8]
mov ecx, dword [ebp - 0xe4]
jmp 0x100d9919
mov ecx, esi
mov esi, dword [esi]
mov dword [ebp - 0xe4], ecx
movzx edi, al
xor edi, 1
cmp byte [esi + 0xd], 0
mov dword [ebp - 0xd4], edi
je 0x100d98e0
mov edi, dword [ebp - 0xec]
cmp byte [ecx + 0xd], 0
jne 0x100d9955
lea eax, [ecx + 0x10]
push eax
lea eax, [ebp - 0x180]
push eax
lea ecx, [ebp - 0x140]
call fcn.100d7fe0
test al, al
je 0x100d9a22
cmp dword [ebp - 0x13c], 0x9249249
je 0x100dba65
mov edi, dword [ebp - 0x140]
lea eax, [ebp - 0x140]
mov dword [ebp - 0x130], eax
push 1
mov ecx, eax
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x12c], 0
call fcn.100dbe80
mov esi, eax
mov dword [ebp - 0x12c], esi
lea eax, [ebp - 0x180]
mov byte [ebp - 4], 0xf
lea ecx, [esi + 0x10]
push eax
call fcn.10031790
push esi
push dword [ebp - 0xd4]
mov dword [esi], edi
lea ecx, [ebp - 0x140]
push dword [ebp - 0xcc]
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov word [esi + 0xc], 0
mov byte [ebp - 4], 8
mov dword [ebp - 0x12c], 0
call fcn.10051f30
mov esi, dword [ebp - 0x18c]
lea eax, [ebp - 0x180]
push eax
cmp esi, dword [ebp - 0x160]
je 0x100d9a04
mov ecx, esi
call fcn.10031790
add esi, 0xc
mov dword [ebp - 0x18c], esi
jmp 0x100d9a1c
push esi
lea ecx, [ebp - 0x190]
call fcn.100d6bc0
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x160], eax
mov edi, dword [ebp - 0xec]
mov esi, dword [ebp - 0x108]
mov eax, dword [ebp - 0x13c]
cmp eax, dword [esi]
ja 0x100d9cce
mov ecx, dword [ebp - 0xdc]
inc ecx
mov dword [ebp - 0xdc], ecx
cmp ecx, dword [ebp - 0x11c]
jb 0x100d9870
mov eax, dword [ebp - 0x100]
inc eax
mov dword [ebp - 0x100], eax
cmp eax, dword [ebp - 0x134]
jb 0x100d9817
mov eax, dword [ebp - 0xe0]
lea ecx, [ebp - 0x218]
push 4
push edi
mov esi, dword [eax]
mov eax, dword [ebp - 0x108]
add esi, dword [ebp - 0x13c]
push esi
mov dword [eax], esi
call fcn.10199ce0
mov dword [ebp - 0x200], esi
mov esi, dword [ebp - 0xec]
mov dword [ebp - 0x1fc], esi
mov dword [ebp - 0x1f4], 0
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x208]
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0x174], eax
mov eax, dword [edx]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0x1f8], 0xffffffff
shr ecx, 2
mov byte [ebp - 4], 0x10
mov eax, dword [eax + 0x10]
shr eax, 2
cmp byte [ebx + 0x24], 0
mov dword [ebp - 0x1ec], eax
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0x124], eax
je 0x100d9b7a
xor edx, edx
cmp dword [edi], edx
jbe 0x100d9b7a
mov eax, dword [ebp - 0x174]
lea esi, [eax + ecx*8]
lea eax, [eax + ecx*4]
mov dword [ebp - 0xdc], eax
nop dword [eax]
mov eax, dword [ebp - 0x16c]
lea ecx, [edx*4]
mov edi, dword [ebp - 0x174]
lea esi, [esi + 4]
inc edx
mov eax, dword [eax + 0x34]
mov eax, dword [ecx + eax]
mov dword [ecx + edi], eax
mov eax, dword [ebp - 0x16c]
mov edi, dword [ebp - 0xdc]
add dword [ebp - 0xdc], 4
mov eax, dword [eax + 0x40]
mov eax, dword [ecx + eax]
mov dword [edi], eax
mov eax, dword [ebp - 0x16c]
mov edi, dword [ebp - 0xe0]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + ecx]
mov dword [esi - 4], eax
cmp edx, dword [edi]
jb 0x100d9b20
mov esi, dword [ebp - 0xec]
xor eax, eax
mov dword [ebp - 0xf4], eax
cmp byte [ebx + 0x20], al
je 0x100d9e6e
mov esi, dword [ebp - 0x140]
mov esi, dword [esi]
mov dword [ebp - 0xdc], esi
cmp byte [esi + 0xd], al
jne 0x100d9dee
xor eax, eax
mov dword [ebp - 0xe4], 0
xor ecx, ecx
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xf8], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x10c], ecx
cmp ecx, eax
je 0x100d9c15
sub eax, ecx
lea ecx, [ebp - 0x1e8]
mov edi, eax
mov dword [ebp - 0xd8], eax
sar edi, 2
push edi
call fcn.1002ece0
push dword [ebp - 0xd8]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0x10c]
lea ecx, [eax + edi*4]
push eax
mov dword [ebp - 0xf8], ecx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0xcc]
add esp, 0xc
mov dword [ebp - 0xe4], eax
mov edx, dword [ebp - 0xec]
mov edi, dword [ebp - 0xe0]
test edx, edx
je 0x100d9c6f
xor eax, eax
mov dword [ebp - 0xd4], eax
mov esi, eax
nop
mov ecx, dword [edi]
mov edi, dword [ebp - 0x174]
add ecx, eax
add ecx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + esi*4]
inc esi
mov dword [edi + ecx*4], eax
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x100]
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0xd4], eax
cmp esi, edx
jb 0x100d9c30
mov esi, dword [ebp - 0xdc]
inc dword [ebp - 0xf4]
mov eax, dword [ebp - 0xcc]
mov byte [ebp - 4], 0x10
test eax, eax
je 0x100d9c9b
mov ecx, dword [ebp - 0xf8]
sub ecx, eax
sar ecx, 2
push ecx
push eax
lea ecx, [ebp - 0x1e8]
call fcn.10075300
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x100d9dc2
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x100d9cc1
cmp esi, dword [eax + 8]
jne 0x100d9cc1
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x100d9cb1
mov esi, eax
mov dword [ebp - 0xdc], esi
jmp 0x100d9de4
mov edi, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x138]
mov dword [edi], 1
test ecx, ecx
je 0x100d9d17
mov edx, dword [ebp - 0x1c0]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x100d9d0d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100db92d
push edx
push ecx
call fcn.101e8bf4
add esp, 8
mov eax, dword [ebp - 0x120]
test eax, eax
je 0x100d9d39
mov ecx, dword [ebp - 0x118]
sub ecx, eax
sar ecx, 2
push ecx
push eax
lea ecx, [ebp - 0x1b8]
call fcn.10075300
lea ecx, [ebp - 0x180]
call fcn.10007640
mov esi, dword [ebp - 0x190]
test esi, esi
je 0x100d9d89
lea eax, [ebp - 0x190]
push eax
push dword [ebp - 0x18c]
push esi
call fcn.10088160
mov ecx, dword [ebp - 0x160]
mov eax, 0x2aaaaaab
sub ecx, esi
add esp, 0xc
imul ecx
lea ecx, [ebp - 0x190]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.100c1a50
mov eax, dword [ebp - 0x140]
push dword [eax + 4]
lea eax, [ebp - 0x140]
push eax
mov ecx, eax
call fcn.100d6e60
push 0x1c
push dword [ebp - 0x140]
call fcn.101e8bf4
add esp, 8
lea ecx, [ebp - 0x244]
call fcn.100281a0
mov eax, edi
jmp 0x100dba17
mov esi, eax
mov dword [ebp - 0xdc], esi
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x100d9de4
mov eax, dword [ecx]
mov esi, ecx
mov dword [ebp - 0xdc], esi
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x100d9dd2
cmp byte [esi + 0xd], 0
je 0x100d9ba2
mov esi, dword [ebp - 0xec]
xor eax, eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x13
test esi, esi
je 0x100d9ff4
mov edi, dword [ebp - 0x128]
mov dword [ebp - 0xd4], esi
mov esi, eax
nop
cmp esi, eax
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x114]
push eax
push edi
push esi
je 0x100d9fb2
lea eax, [ebp - 0x1dc]
push eax
call fcn.100d7aa0
mov eax, dword [ebp - 0xe4]
add esp, 0x14
add esi, 0x198
mov dword [ebp - 0x1d8], esi
jmp 0x100d9fcf
mov edx, dword [ebp - 0x190]
mov dword [ebp - 0xf8], edx
cmp edx, dword [ebp - 0x18c]
je 0x100d9df4
nop word [eax + eax]
xor ecx, ecx
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xcc], ecx
mov ecx, dword [edx]
mov dword [ebp - 0xe4], ecx
mov ecx, dword [edx + 4]
mov edx, dword [ebp - 0xe4]
cmp edx, ecx
je 0x100d9f12
sub ecx, edx
mov esi, ecx
mov dword [ebp - 0xd8], ecx
sar esi, 2
lea ecx, [ebp - 0x1e8]
push esi
call fcn.1002ece0
push dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
push dword [ebp - 0xe4]
lea ecx, [eax + esi*4]
push eax
mov dword [ebp - 0xcc], ecx
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [ebp - 0xdc]
add esp, 0xc
mov esi, dword [ebp - 0xec]
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xd4], ecx
xor edx, edx
test esi, esi
je 0x100d9f5f
xor eax, eax
mov dword [ebp - 0xe4], eax
mov ecx, dword [edi]
mov edi, dword [ebp - 0x174]
add ecx, eax
add ecx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edx*4]
inc edx
mov dword [edi + ecx*4], eax
mov eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0x100]
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0xe4], eax
cmp edx, esi
jb 0x100d9f20
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xdc]
inc eax
mov dword [ebp - 0xf4], eax
mov byte [ebp - 4], 0x10
test ecx, ecx
je 0x100d9f92
mov eax, dword [ebp - 0xcc]
sub eax, ecx
sar eax, 2
push eax
push ecx
lea ecx, [ebp - 0x1e8]
call fcn.10075300
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf8]
add edx, 0xc
mov dword [ebp - 0xf8], edx
cmp edx, dword [ebp - 0x18c]
jne 0x100d9e90
jmp 0x100d9df4
lea ecx, [ebp - 0x1dc]
call fcn.100d6960
mov eax, dword [ebp - 0x1d4]
mov esi, dword [ebp - 0x1d8]
mov dword [ebp - 0xe4], eax
sub dword [ebp - 0xd4], 1
jne 0x100d9e30
mov eax, dword [ebp - 0x1dc]
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0xcd]
push eax
push esi
lea ecx, [ebp - 0x1e8]
call fcn.10007090
push fcn.10011750
push 0x10010b30
push 3
push 0xc
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x14
push eax
call fcn.101e8a3b
cmp byte [ebx + 0x24], 0
mov byte [ebp - 4], 0x15
je 0x100da1aa
lea edi, [ebp - 0x38]
mov dword [ebp - 0xf4], 3
mov dword [ebp - 0xcc], edi
mov ecx, dword [edi + 4]
mov eax, 0x2aaaaaab
sub ecx, dword [edi]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xd8], eax
cmp esi, eax
jae 0x100da083
mov edx, dword [edi]
lea eax, [esi + esi*2]
push edi
lea esi, [edx + eax*4]
mov eax, dword [edi + 4]
push eax
push esi
call fcn.10088160
mov dword [edi + 4], esi
add esp, 0xc
mov esi, dword [ebp - 0xec]
jmp 0x100da0ca
jbe 0x100da0ca
mov ecx, dword [edi + 8]
mov eax, 0x2aaaaaab
sub ecx, dword [edi]
imul ecx
mov ecx, edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jbe 0x100da0af
lea eax, [ebp - 0xd8]
push eax
push esi
call fcn.10089ec0
jmp 0x100da0ca
push dword [ebp - 0xd8]
mov eax, esi
sub eax, dword [ebp - 0xd8]
push eax
mov eax, dword [edi + 4]
push eax
call fcn.100dbe40
mov dword [edi + 4], eax
test esi, esi
je 0x100da18e
mov edi, dword [ebp - 0x11c]
add edi, 4
mov dword [ebp - 0xfc], esi
xor edx, edx
mov dword [ebp - 0xf8], edx
nop dword [eax]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
mov eax, dword [ecx + edx + 4]
add ecx, edx
mov edx, eax
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd4], eax
mov esi, dword [ecx]
sub edx, esi
sar edx, 2
cmp edi, edx
jae 0x100da11c
lea eax, [esi + edi*4]
jmp 0x100da163
jbe 0x100da166
mov eax, dword [ecx + 8]
sub eax, esi
sar eax, 2
cmp edi, eax
jbe 0x100da139
lea eax, [ebp - 0xcd]
push eax
push edi
call fcn.10030d90
jmp 0x100da166
mov eax, edi
sub eax, edx
lea esi, [eax*4]
push esi
push 0
push dword [ebp - 0xd4]
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0xd4]
add esp, 0xc
mov ecx, dword [ebp - 0xd8]
add eax, esi
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0xf8]
add edx, 0xc
sub dword [ebp - 0xfc], 1
mov dword [ebp - 0xf8], edx
jne 0x100da0f0
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xcc]
add edi, 0xc
sub dword [ebp - 0xf4], 1
mov dword [ebp - 0xcc], edi
jne 0x100da043
mov edi, dword [ebp - 0xe0]
xor ecx, ecx
mov dword [ebp - 0xf8], ecx
cmp dword [ebp - 0x134], ecx
jbe 0x100db7a0
nop
test esi, esi
je 0x100da251
mov eax, dword [ebp - 0x138]
xor edi, edi
mov edx, dword [ebp - 0x1e8]
sub eax, edx
mov dword [ebp - 0xd4], esi
mov esi, dword [ebp - 0x150]
mov dword [ebp - 0x10c], eax
nop word [eax + eax]
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax]
mov eax, dword [ecx + esi + 0x10]
imul eax, dword [ebp - 0xf8]
add eax, dword [ecx + esi + 0x14]
cmp byte [ebx + 0x24], 0
mov ecx, dword [ebp - 0x10c]
mov dword [ecx + edx], eax
je 0x100da22d
mov ecx, dword [ebp - 0x244]
mov eax, dword [edi + ecx + 0x10]
imul eax, dword [ebp - 0xf8]
add eax, dword [edi + ecx + 0x14]
mov dword [edx], eax
add edi, 0x28
add esi, 0x28
add edx, 4
sub dword [ebp - 0xd4], 1
jne 0x100da1f0
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x114], 0
mov eax, dword [eax]
add eax, dword [ebp - 0x150]
mov edx, dword [eax + 0x10]
imul edx, ecx
add edx, dword [eax + 0x14]
cmp dword [ebp - 0x11c], 0
mov dword [ebp - 0x12c], edx
jbe 0x100db622
cmp byte [ebx + 0x24], 0
jne 0x100da351
xor edx, edx
test esi, esi
je 0x100da2c0
mov edi, dword [ebp - 0x114]
nop dword [eax + eax]
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + edi*4]
mov eax, dword [ebp - 0x180]
mov dword [eax + edx*4], ecx
inc edx
cmp edx, esi
jb 0x100da2a0
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x108]
xor edx, edx
mov dword [ebp - 0xf4], edx
mov eax, dword [eax]
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x100da323
mov edi, dword [ebp - 0x174]
xor ecx, ecx
test esi, esi
je 0x100da31d
mov edx, edi
nop dword [eax + eax]
mov eax, dword [ebp - 0x180]
mov eax, dword [eax + ecx*4]
cmp eax, dword [edx]
jne 0x100da337
mov esi, dword [ebp - 0x100]
inc ecx
lea eax, [esi*4]
mov esi, dword [ebp - 0xec]
add edx, eax
cmp ecx, esi
jb 0x100da2f0
mov edx, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xe0]
cmp edx, dword [edi]
jge 0x100db5ef
mov byte [ebp - 0x101], 1
jmp 0x100db5ef
mov edx, dword [ebp - 0xf4]
add edi, 4
inc edx
mov dword [ebp - 0xf4], edx
cmp edx, dword [ebp - 0xd8]
jb 0x100da2e0
jmp 0x100da31d
movss xmm0, dword [0x102059a4]
xor al, al
xor edi, edi
mov byte [ebp - 0xcd], al
xor eax, eax
mov dword [ebp - 0xf4], edi
movss dword [ebp - 0xf0], xmm0
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0x15c], edi
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x154], eax
test esi, esi
je 0x100da3f1
cmp esi, 0x3fffffff
ja 0x100dba6a
push esi
lea ecx, [ebp - 0x15c]
call fcn.1002ece0
lea edi, [esi*4]
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
lea ecx, [eax + edi]
mov dword [ebp - 0x154], ecx
lea ecx, [ebp - 0xd8]
push ecx
push esi
push eax
lea ecx, [ebp - 0x15c]
call fcn.100394e0
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x118], eax
jmp 0x100da3f8
lea edi, [esi*4]
xor eax, eax
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x1a0], eax
test esi, esi
je 0x100da47f
cmp esi, 0x3fffffff
ja 0x100dba6a
push esi
lea ecx, [ebp - 0x1a8]
call fcn.1002ece0
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1a4], eax
lea ecx, [eax + edi]
mov dword [ebp - 0x1a0], ecx
lea ecx, [ebp - 0x10c]
push ecx
push esi
push eax
lea ecx, [ebp - 0x1a8]
call fcn.100394e0
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0xd8], eax
xor edi, edi
mov byte [ebp - 4], 0x17
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x144], edi
test esi, esi
je 0x100da4ef
cmp esi, 0x3fffffff
ja 0x100dba6a
push esi
lea ecx, [ebp - 0x14c]
call fcn.1002ece0
mov edi, eax
lea eax, [esi*4]
push eax
push 0
push edi
lea esi, [edi + eax]
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x144], esi
call sub.VCRUNTIME140.dll_memset
mov dword [ebp - 0x148], esi
add esp, 0xc
mov esi, dword [ebp - 0xec]
xor eax, eax
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x194], eax
test esi, esi
je 0x100da55f
cmp esi, 0x3fffffff
ja 0x100dba6a
push esi
lea ecx, [ebp - 0x19c]
call fcn.1002ece0
lea ecx, [esi*4]
mov dword [ebp - 0x19c], eax
push ecx
push 0
lea esi, [eax + ecx]
push eax
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x194], esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x198], esi
mov eax, dword [ebp - 0x124]
xor esi, esi
mov byte [ebp - 4], 0x19
lea eax, [eax*2 - 0x10]
test eax, eax
cmovg esi, eax
xor ecx, ecx
xor edx, edx
bts ecx, esi
cmp esi, 0x20
cmovae edx, ecx
xor ecx, edx
cmp esi, 0x40
cmovae edx, ecx
call fcn.101e8f40
movsd xmm1, qword [0x10205990]
divsd xmm1, xmm0
mov esi, dword [ebp - 0xec]
mov dword [ebp - 0xd4], 0x102058b8
movsd qword [ebp - 0x168], xmm1
test esi, esi
je 0x100da76c
mov eax, dword [ebp - 0x138]
xor ecx, ecx
mov edx, dword [ebp - 0x120]
mov edi, ecx
sub eax, edx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0x128], eax
nop dword [eax + eax]
mov eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x114]
mov ecx, dword [ecx + eax]
lea eax, [esi*4 + 8]
add ecx, eax
mov eax, dword [ebp - 0x16c]
movzx eax, byte [eax]
movss xmm0, dword [ecx]
mov ecx, esi
cvtps2pd xmm0, xmm0
movd xmm1, eax
mov eax, dword [ebp - 0xd4]
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [eax]
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + edx]
mulsd xmm1, xmm0
movd xmm0, dword [eax + ecx*4]
mov eax, 1
mov ecx, dword [ebp - 0x110]
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx], xmm0
mov ecx, dword [ecx + 0x20]
shl eax, cl
dec eax
push ecx
mov dword [ebp - 0xe8], eax
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_lroundf]
mov ecx, eax
add esp, 4
test ecx, ecx
jns 0x100da66b
xor ecx, ecx
jmp 0x100da678
cmp ecx, dword [ebp - 0xe8]
cmovg ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x180]
mov edx, dword [ebp - 0x120]
mov esi, dword [ebp - 0xec]
add edx, 4
mov dword [ebp - 0x120], edx
mov dword [eax + edi*4], ecx
inc edi
mov ecx, dword [ebp - 0xcc]
add ecx, 0xc
mov dword [ebp - 0xcc], ecx
cmp edi, esi
jb 0x100da5e0
mov ecx, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0xdc]
sub eax, ecx
mov edi, dword [ebp - 0xfc]
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xe8], eax
nop word [eax + eax]
mov edx, dword [ebp - 0x114]
mov eax, dword [eax + ecx]
push 0
lea ecx, [edx*4]
mov edx, dword [ebp - 0xcc]
push edx
push 0
add eax, ecx
mov ecx, dword [ebp - 0x1d0]
push 0
push dword [ecx]
push dword [ebp - 0xf8]
push dword [ebp - 0x114]
push dword [ebp - 0x1ec]
push eax
push dword [ebp - 0x11c]
lea eax, [ebp - 0x58]
push 0
push eax
call fcn.10087330
mov ecx, dword [ebp - 0x120]
add esp, 0x30
add dword [ebp - 0xcc], 0x198
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
mov eax, dword [ebp - 0xe8]
psrldq xmm1, 8
movd dword [ecx], xmm1
add ecx, 4
movq qword [ebp - 0x48], xmm0
mov dword [ebp - 0x120], ecx
sub esi, 1
jne 0x100da6e0
mov edx, dword [ebp - 0x108]
mov esi, 0xffffff71
mov dword [ebp - 0x120], esi
mov eax, dword [edx]
cmp eax, esi
jle 0x100da99c
nop word [eax + eax]
xor eax, eax
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xec], eax
jbe 0x100da805
mov ecx, dword [ebp - 0x19c]
sub ecx, edi
mov dword [ebp - 0xe8], ecx
nop
push dword [ebp - 0x124]
push dword [ebp - 0x100]
push dword [edx]
push eax
push esi
push dword [ebp - 0x174]
call fcn.100dba70
mov ecx, dword [ebp - 0xe0]
add esp, 0x18
mov dword [edi], eax
cmp esi, dword [ecx]
jge 0x100da7e7
mov ecx, dword [ebp - 0xe8]
mov ecx, dword [ecx + edi]
add ecx, eax
mov dword [edi], ecx
mov eax, dword [ebp - 0xcc]
add edi, 4
mov edx, dword [ebp - 0x108]
inc eax
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xec]
jb 0x100da7b0
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x1b8]
push eax
call fcn.100d8030
fmul qword [ebp - 0x168]
add esp, 8
fstp dword [ebp - 0xe8]
cmp esi, 0xffffffff
jne 0x100da836
movss xmm0, dword [0x102059a8]
jmp 0x100da88c
test esi, esi
jns 0x100da849
mov eax, esi
neg eax
add eax, eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
jmp 0x100da88c
mov eax, dword [ebp - 0xe0]
cmp esi, dword [eax]
jge 0x100da85d
movss xmm0, dword [0x101f77a4]
jmp 0x100da892
mov eax, dword [ebp - 0x108]
mov eax, dword [eax]
cmp esi, eax
jge 0x100da873
movss xmm0, dword [0x1020599c]
jmp 0x100da88c
add eax, 0x40
cmp esi, eax
jge 0x100da884
movss xmm0, dword [0x10205998]
jmp 0x100da88c
movss xmm0, dword [0x102059a0]
mov eax, dword [ebp - 0xe0]
addss xmm0, dword [ebp - 0xe8]
movss xmm1, dword [ebp - 0xf0]
comiss xmm1, xmm0
jbe 0x100da97f
cmp esi, dword [eax]
mov edi, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x14c]
setl byte [ebp - 0xcd]
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x158], ecx
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0xec]
movss dword [ebp - 0xf0], xmm0
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x154], ecx
test eax, eax
je 0x100da985
mov esi, dword [ebp - 0x19c]
mov ecx, esi
mov edx, dword [ebp - 0x1b8]
sub edx, esi
mov dword [ebp - 0xe8], edx
mov edx, dword [ebp - 0x1a8]
sub edx, esi
mov esi, dword [ebp - 0xe8]
mov dword [ebp - 0x128], edx
mov edx, eax
mov edi, dword [ebp - 0x128]
movd xmm0, dword [ecx]
movss xmm1, dword [esi + ecx]
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvttss2si eax, xmm1
mov dword [edi + ecx], eax
add ecx, 4
sub edx, 1
jne 0x100da952
mov edi, dword [ebp - 0xfc]
mov esi, dword [ebp - 0x120]
jmp 0x100da985
mov edi, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x108]
inc esi
mov dword [ebp - 0x120], esi
mov eax, dword [edx]
cmp esi, eax
jl 0x100da790
push 0
push dword [ebp - 0x124]
push eax
lea eax, [ebp - 0x180]
push eax
call fcn.100dbbe0
mov esi, dword [ebp - 0xec]
mov ecx, eax
xor eax, eax
mov dword [ebp - 0xcc], ecx
add esp, 0x10
mov dword [ebp - 0xfc], eax
test esi, esi
je 0x100daa3d
mov edx, dword [ebp - 0x19c]
sub edx, edi
mov dword [ebp - 0xe8], edx
nop dword [eax]
push dword [ebp - 0x124]
mov edx, dword [ebp - 0x108]
push dword [ebp - 0x100]
push dword [edx]
push eax
push ecx
push dword [ebp - 0x174]
call fcn.100dba70
mov edx, dword [ebp - 0xe0]
add esp, 0x18
mov ecx, dword [ebp - 0xcc]
mov dword [edi], eax
cmp ecx, dword [edx]
jge 0x100daa29
mov ecx, dword [ebp - 0xe8]
mov ecx, dword [edi + ecx]
add ecx, eax
mov dword [edi], ecx
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xfc]
add edi, 4
inc eax
mov dword [ebp - 0xfc], eax
cmp eax, esi
jb 0x100da9e0
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x1b8]
push eax
call fcn.100d8030
fmul qword [ebp - 0x168]
add esp, 8
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x108]
fstp dword [ebp - 0xe8]
cmp ecx, 0xffffffff
jne 0x100daa7a
movss xmm0, dword [0x102059a8]
jmp 0x100daaca
test ecx, ecx
jns 0x100daa8d
mov eax, ecx
neg eax
add eax, eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
jmp 0x100daaca
mov eax, dword [ebp - 0xe0]
cmp ecx, dword [eax]
jge 0x100daaa1
movss xmm0, dword [0x101f77a4]
jmp 0x100daad0
mov edi, dword [edx]
cmp ecx, edi
jge 0x100daab1
movss xmm0, dword [0x1020599c]
jmp 0x100daad0
lea eax, [edi + 0x40]
cmp ecx, eax
jge 0x100daac2
movss xmm0, dword [0x10205998]
jmp 0x100daaca
movss xmm0, dword [0x102059a0]
mov eax, dword [ebp - 0xe0]
addss xmm0, dword [ebp - 0xe8]
movss xmm1, dword [ebp - 0xf0]
comiss xmm1, xmm0
jbe 0x100dabb3
cmp ecx, dword [eax]
mov edi, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x14c]
setl byte [ebp - 0xcd]
mov dword [ebp - 0xf4], ecx
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x158], ecx
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x118]
movss dword [ebp - 0xf0], xmm0
mov dword [ebp - 0x170], edi
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x144], eax
test esi, esi
je 0x100dabb9
mov edx, dword [ebp - 0x19c]
mov ecx, edx
mov eax, dword [ebp - 0x1b8]
sub eax, edx
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x1a8]
sub eax, edx
mov edx, esi
mov esi, dword [ebp - 0xe8]
mov edi, eax
movd xmm0, dword [ecx]
movss xmm1, dword [ecx + esi]
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvttss2si eax, xmm1
mov dword [ecx + edi], eax
add ecx, 4
sub edx, 1
jne 0x100dab80
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0x170]
mov edx, dword [ebp - 0x108]
jmp 0x100dabb9
mov edi, dword [ebp - 0x14c]
push 1
push dword [ebp - 0x124]
lea eax, [ebp - 0x180]
push dword [edx]
push eax
call fcn.100dbbe0
mov ecx, eax
add esp, 0x10
xor eax, eax
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xfc], eax
test esi, esi
je 0x100dac51
mov edx, dword [ebp - 0x19c]
sub edx, edi
mov dword [ebp - 0xe8], edx
push dword [ebp - 0x124]
mov edx, dword [ebp - 0x108]
push dword [ebp - 0x100]
push dword [edx]
push eax
push ecx
push dword [ebp - 0x174]
call fcn.100dba70
mov edx, dword [ebp - 0xe0]
add esp, 0x18
mov ecx, dword [ebp - 0xcc]
mov dword [edi], eax
cmp ecx, dword [edx]
jge 0x100dac3d
mov ecx, dword [ebp - 0xe8]
mov ecx, dword [edi + ecx]
add ecx, eax
mov dword [edi], ecx
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xfc]
add edi, 4
inc eax
mov dword [ebp - 0xfc], eax
cmp eax, esi
jb 0x100dabf4
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x1b8]
push eax
call fcn.100d8030
fmul qword [ebp - 0x168]
add esp, 8
mov ecx, dword [ebp - 0xcc]
fstp dword [ebp - 0xe8]
cmp ecx, 0xffffffff
jne 0x100dac88
movss xmm0, dword [0x102059a8]
jmp 0x100dacde
test ecx, ecx
jns 0x100dac9b
mov eax, ecx
neg eax
add eax, eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
jmp 0x100dacde
mov eax, dword [ebp - 0xe0]
cmp ecx, dword [eax]
jge 0x100dacaf
movss xmm0, dword [0x101f77a4]
jmp 0x100dace4
mov eax, dword [ebp - 0x108]
mov eax, dword [eax]
cmp ecx, eax
jge 0x100dacc5
movss xmm0, dword [0x1020599c]
jmp 0x100dacde
add eax, 0x40
cmp ecx, eax
jge 0x100dacd6
movss xmm0, dword [0x10205998]
jmp 0x100dacde
movss xmm0, dword [0x102059a0]
mov eax, dword [ebp - 0xe0]
addss xmm0, dword [ebp - 0xe8]
movss xmm1, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x1b8]
mov dword [ebp - 0x120], edx
comiss xmm1, xmm0
jbe 0x100dadcd
cmp ecx, dword [eax]
mov edi, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x14c]
setl byte [ebp - 0xcd]
mov dword [ebp - 0xf4], ecx
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x158], ecx
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x118]
movss dword [ebp - 0xf0], xmm0
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x144], eax
test esi, esi
je 0x100dadd9
mov edi, dword [ebp - 0x19c]
mov ecx, edi
mov eax, dword [ebp - 0x1a8]
sub edx, edi
mov dword [ebp - 0xe8], edx
sub eax, edi
mov edx, esi
mov edi, eax
mov esi, dword [ebp - 0xe8]
nop word [eax + eax]
movd xmm0, dword [ecx]
movss xmm1, dword [ecx + esi]
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvttss2si eax, xmm1
mov dword [ecx + edi], eax
add ecx, 4
sub edx, 1
jne 0x100dada0
mov edi, dword [ebp - 0xfc]
mov esi, dword [ebp - 0xec]
jmp 0x100dadd9
mov edi, dword [ebp - 0x14c]
mov dword [ebp - 0xfc], edi
mov eax, dword [ebp - 0xd4]
add eax, 8
mov dword [ebp - 0xd4], eax
cmp eax, 0x102058c8
jl 0x100da5b5
mov al, byte [ebp - 0xcd]
or byte [ebp - 0x101], al
mov eax, dword [ebp - 0x16c]
cmp byte [eax], 0
jne 0x100dae8d
mov esi, dword [ebp - 0x1a8]
lea edi, [eax + 8]
mov dword [ebp - 0xd4], 3
mov ecx, dword [edi]
cmp ecx, dword [edi + 4]
je 0x100dae31
mov eax, dword [esi]
mov dword [ecx], eax
add dword [edi], 4
jmp 0x100dae3b
push esi
push ecx
lea ecx, [edi - 4]
call fcn.1004f260
add esi, 4
add edi, 0xc
sub dword [ebp - 0xd4], 1
jne 0x100dae21
movss xmm0, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x16c]
mov esi, dword [ebp - 0xec]
add ecx, 0x28
cvtps2pd xmm0, xmm0
mov eax, dword [ecx + 4]
movsd qword [ebp - 0x168], xmm0
cmp eax, dword [ecx + 8]
je 0x100dae80
movsd qword [eax], xmm0
add eax, 8
mov dword [ecx + 4], eax
jmp 0x100dae8d
lea edx, [ebp - 0x168]
push edx
push eax
call fcn.100c25a0
test esi, esi
je 0x100db0b2
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x11c]
and eax, 1
mov edx, dword [ebp - 0x15c]
mov dword [ebp - 0xe8], eax
mov eax, 0
mov dword [ebp - 0x1ac], edx
lea ecx, [ecx + 2]
mov dword [ebp - 0x170], esi
cmove eax, ecx
mov ecx, dword [ebp - 0xdc]
add eax, dword [ebp - 0x114]
add ecx, 0x28
shl eax, 2
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x1e8]
sub eax, edx
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0x128], eax
mov eax, dword [edx]
xor esi, esi
cdq
cmp dword [ebp - 0xe8], esi
mov edi, eax
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0xf0]
lea eax, [eax + 2]
mov ecx, dword [ecx + 0x30]
cmovne esi, eax
add ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xf0]
shld edx, edi, 3
shl edi, 3
mov eax, dword [eax - 8]
sub eax, edi
mov dword [ebp - 0xd4], edx
mov dword [ecx], eax
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax - 0x28]
mov eax, dword [eax - 0x24]
sub ecx, edi
sbb eax, edx
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xcc]
add ecx, 3
adc eax, 0
add esi, dword [ebp - 0x114]
shrd ecx, eax, 3
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax]
mov dword [edx + eax], ecx
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx]
add dword [eax + esi*4 + 4], ecx
mov ecx, dword [edx - 0x20]
mov eax, dword [edx - 0x1c]
sub ecx, edi
sbb eax, dword [ebp - 0xd4]
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xcc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0xc]
mov dword [edx + eax], ecx
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0xc]
add dword [eax + esi*4 + 4], ecx
mov ecx, dword [edx - 0x18]
mov eax, dword [edx - 0x14]
sub ecx, edi
sbb eax, dword [ebp - 0xd4]
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xcc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0x18]
mov dword [edx + eax], ecx
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x18]
add dword [eax + esi*4 + 4], ecx
mov ecx, dword [edx - 0x10]
sub ecx, edi
mov edi, edx
mov eax, dword [edi - 0xc]
sbb eax, dword [ebp - 0xd4]
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0x1ac]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
sar eax, 3
mov dword [ebp - 0x164], eax
mov eax, dword [edi + 0x24]
add eax, dword [ebp - 0xcc]
mov dword [eax], ecx
mov eax, dword [edi + 0x24]
add edi, 0x198
mov dword [ebp - 0xf0], edi
add dword [eax + esi*4 + 4], ecx
mov eax, dword [ebp - 0x128]
mov esi, dword [ebp - 0x114]
mov ecx, dword [edx + eax]
mov eax, dword [edx]
add edx, 4
sub dword [ebp - 0x170], 1
mov dword [ebp - 0x1ac], edx
mov dword [ecx + esi*4], eax
jne 0x100daef3
mov edx, dword [ebp - 0x120]
xorps xmm2, xmm2
mov eax, dword [ebp - 0x15c]
sub edx, eax
mov esi, dword [ebp - 0xec]
mov ecx, esi
nop
movd xmm0, dword [eax]
movss xmm1, dword [edx + eax]
add eax, 4
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
mulss xmm1, xmm1
addss xmm2, xmm1
sub ecx, 1
jne 0x100db090
jmp 0x100db0b5
xorps xmm2, xmm2
cvtps2pd xmm0, xmm2
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100db0c7
sqrtsd xmm0, xmm0
jmp 0x100db0cc
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mov eax, dword [ebp - 0x124]
xor ecx, ecx
movss xmm1, dword [0x101f4728]
add eax, 0xfffffff8
test eax, eax
movss dword [ebp - 0x1ac], xmm1
cvtsd2ss xmm0, xmm0
cmovg ecx, eax
mov eax, 0x26
shl eax, cl
movd xmm1, eax
cvtdq2ps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x100db112
movaps xmm2, xmm1
divss xmm2, xmm0
movss dword [ebp - 0x1ac], xmm2
test esi, esi
je 0x100db4df
mov eax, dword [ebp - 0x15c]
xor edi, edi
mov ecx, dword [ebp - 0x120]
sub ecx, eax
mov dword [ebp - 0x1f0], 0x3f800000
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x164], ecx
mov dword [ebp - 0xe8], esi
nop dword [eax]
movd xmm0, dword [eax]
xor esi, esi
movss xmm1, dword [eax + ecx]
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movaps xmm0, xmmword [0x102059e0]
movups xmmword [ebp - 0xc8], xmm0
movaps xmm0, xmmword [0x102059c0]
movups xmmword [ebp - 0xb8], xmm0
movaps xmm0, xmmword [0x102059d0]
movups xmmword [ebp - 0xa8], xmm0
movaps xmm0, xmmword [0x10205a00]
movups xmmword [ebp - 0x98], xmm0
movaps xmm0, xmmword [0x102059f0]
movups xmmword [ebp - 0x88], xmm0
movaps xmm0, xmmword [0x10205a10]
movups xmmword [ebp - 0x78], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0xf0], xmm1
movss dword [ebp - 0xd4], xmm0
nop word [eax + eax]
mov eax, dword [ebp + esi*8 - 0xc8]
mov ecx, dword [ebp + esi*8 - 0xc4]
add ecx, dword [ebp - 0x114]
shl ecx, 2
lea eax, [eax + eax*2]
mov dword [ebp - 0x1cc], ecx
mov dword [ebp - 0x170], eax
mov eax, dword [ebp + eax*4 - 0x38]
push ecx
mov eax, dword [eax + edi]
movss xmm0, dword [eax + ecx]
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__fdsign]
movss xmm0, dword [ebp - 0xf0]
test eax, eax
movss dword [esp], xmm0
setne byte [ebp - 0xcd]
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__fdsign]
movss xmm2, dword [ebp - 0xd4]
add esp, 4
test eax, eax
setne al
cmp byte [ebp - 0xcd], al
je 0x100db261
mov eax, dword [ebp - 0x170]
mov eax, dword [ebp + eax*4 - 0x38]
mov eax, dword [eax + edi]
add eax, dword [ebp - 0x1cc]
addss xmm2, dword [eax]
movss dword [ebp - 0xd4], xmm2
inc esi
cmp esi, 0xb
jl 0x100db1d0
movss xmm0, dword [ebp - 0xf0]
lea esi, [ebp - 0x1f0]
andps xmm0, xmmword [0x101f4be0]
lea eax, [ebp - 0x1cc]
andps xmm2, xmmword [0x101f4be0]
cvtps2pd xmm1, xmm0
cvtps2pd xmm0, xmm2
addsd xmm0, qword [0x101f76b8]
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
comiss xmm0, dword [0x101f4728]
movss dword [ebp - 0x1cc], xmm0
cmovbe esi, eax
xor ecx, ecx
mov dword [ebp - 0x170], ecx
nop dword [eax]
mov eax, dword [ebp + ecx*8 - 0xc8]
mov ecx, dword [ebp + ecx*8 - 0xc4]
push ecx
lea eax, [eax + eax*2]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp + eax*4 - 0x38]
add eax, edi
mov edi, dword [ebp - 0x114]
add edi, ecx
mov eax, dword [eax]
movss xmm0, dword [eax + edi*4]
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__fdsign]
movss xmm0, dword [ebp - 0xf0]
test eax, eax
movss dword [esp], xmm0
setne byte [ebp - 0xcd]
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__fdsign]
movss xmm2, dword [ebp - 0xf0]
add esp, 4
test eax, eax
setne al
cmp byte [ebp - 0xcd], al
je 0x100db369
mov eax, dword [ebp - 0xd4]
movss xmm0, dword [esi]
mov eax, dword [ebp + eax*4 - 0x38]
add eax, dword [ebp - 0xcc]
mov eax, dword [eax]
mulss xmm0, dword [eax + edi*4]
addss xmm2, xmm0
movss xmm0, dword [0x101f4728]
subss xmm0, dword [esi]
movss dword [ebp - 0xf0], xmm2
mulss xmm0, dword [eax + edi*4]
movss dword [eax + edi*4], xmm0
mov ecx, dword [ebp - 0x170]
mov edi, dword [ebp - 0xcc]
inc ecx
mov dword [ebp - 0x170], ecx
cmp ecx, 0xb
jl 0x100db2c0
mulss xmm2, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x38]
cvtps2pd xmm0, xmm2
mov eax, dword [eax + edi]
mulsd xmm0, qword [0x10205978]
cvtpd2ps xmm1, xmm0
movaps xmm0, xmm1
addss xmm0, xmm1
addss xmm0, dword [eax + ecx*4 + 0xc]
movss dword [eax + ecx*4 + 0xc], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4 + 0x10]
movss dword [eax + ecx*4 + 0x10], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4]
movss dword [eax + ecx*4], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4]
movss dword [eax + ecx*4], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4]
movss dword [eax + ecx*4], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4 + 4]
movss dword [eax + ecx*4 + 4], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4 + 4]
movss dword [eax + ecx*4 + 4], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4 + 8]
movss dword [eax + ecx*4 + 8], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4 + 8]
movss dword [eax + ecx*4 + 8], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4 + 0xc]
movss dword [eax + ecx*4 + 0xc], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4 + 0xc]
movss dword [eax + ecx*4 + 0xc], xmm0
movaps xmm0, xmm1
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + edi]
addss xmm0, dword [eax + ecx*4 + 0x10]
movss dword [eax + ecx*4 + 0x10], xmm0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edi]
add edi, 0xc
mov dword [ebp - 0xcc], edi
addss xmm1, dword [eax + ecx*4 + 0x10]
movss dword [eax + ecx*4 + 0x10], xmm1
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x164]
add eax, 4
sub dword [ebp - 0xe8], 1
mov dword [ebp - 0x128], eax
jne 0x100db150
mov esi, dword [ebp - 0xec]
mov eax, dword [ebp - 0x19c]
test eax, eax
je 0x100db51f
mov ecx, dword [ebp - 0x10c]
sub ecx, eax
sar ecx, 2
push ecx
push eax
lea ecx, [ebp - 0x19c]
call fcn.10075300
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 0
mov ecx, dword [ebp - 0xfc]
test ecx, ecx
je 0x100db55f
mov eax, dword [ebp - 0x144]
sub eax, ecx
sar eax, 2
push eax
push ecx
lea ecx, [ebp - 0x14c]
call fcn.10075300
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0
mov eax, dword [ebp - 0x1a8]
test eax, eax
je 0x100db59f
mov ecx, dword [ebp - 0xd8]
sub ecx, eax
sar ecx, 2
push ecx
push eax
lea ecx, [ebp - 0x1a8]
call fcn.10075300
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x1a0], 0
mov eax, dword [ebp - 0x15c]
mov byte [ebp - 4], 0x15
test eax, eax
je 0x100db5e3
mov ecx, dword [ebp - 0x118]
sub ecx, eax
sar ecx, 2
push ecx
push eax
lea ecx, [ebp - 0x15c]
call fcn.10075300
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0
mov edx, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x16c]
cmp byte [eax], 0
mov eax, dword [ebp - 0x114]
je 0x100db609
mov ecx, dword [ebp - 0x12c]
mov dword [ecx + eax*4], edx
inc eax
mov dword [ebp - 0x114], eax
cmp eax, dword [ebp - 0x11c]
jb 0x100da285
mov ecx, dword [ebp - 0xf8]
cmp byte [ebx + 0x24], 0
je 0x100db76f
test esi, esi
je 0x100db76f
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x12c], 0
mov eax, dword [ecx]
lea edx, [ebp - 0x164]
mov dword [ebp - 0x164], 0
cmp eax, dword [edx]
je 0x100db676
cmp al, byte [edx]
jne 0x100db682
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100db682
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100db682
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100db682
mov dword [ebp - 0xd8], 0
jmp 0x100db68d
sbb eax, eax
or eax, 1
mov dword [ebp - 0xd8], eax
xor edx, edx
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0x10c], edx
nop dword [eax + eax]
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
add edi, edx
add eax, edx
mov dword [ebp - 0xcc], eax
cmp eax, edi
je 0x100db6de
mov ecx, dword [eax]
mov esi, dword [ebp - 0xcc]
mov eax, dword [edi]
mov dword [esi], eax
mov eax, esi
mov dword [edi], ecx
mov ecx, dword [eax + 4]
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, esi
mov dword [edi + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov dword [edi + 8], ecx
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x2c]
add esi, edx
add edi, edx
cmp edi, esi
je 0x100db70c
mov ecx, dword [edi]
mov eax, dword [esi]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dword [esi], ecx
mov ecx, dword [edi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 8]
mov dword [edi + 8], eax
mov dword [esi + 8], ecx
mov eax, dword [ebp - 0x20]
mov esi, dword [eax + edx + 4]
mov edi, dword [eax + edx]
mov eax, esi
sub eax, edi
cmp dword [ebp - 0xd8], 0
jne 0x100db73a
and eax, 0xfffffffc
push eax
push 0
push edi
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0x10c]
add esp, 0xc
jmp 0x100db74d
lea ecx, [eax + 3]
xor eax, eax
shr ecx, 2
cmp edi, esi
cmova ecx, eax
test ecx, ecx
je 0x100db74d
rep stosd dword es:[edi], eax
add edx, 0xc
sub dword [ebp - 0xe8], 1
mov dword [ebp - 0x10c], edx
jne 0x100db6a0
mov esi, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xf8]
inc ecx
mov dword [ebp - 0xf8], ecx
cmp ecx, dword [ebp - 0x134]
jae 0x100db789
mov edi, dword [ebp - 0xe0]
jmp 0x100da1c0
cmp byte [ebp - 0x101], 0
mov edi, dword [ebp - 0x1b0]
mov dword [ebp - 0x118], edi
je 0x100db7a6
jmp 0x100db7b2
mov edi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x1d0]
mov dword [eax], 0
mov eax, dword [ebp - 0x16c]
cmp byte [eax], 0
je 0x100db876
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x1bc]
mov esi, dword [ebp - 0x150]
add esi, 0x28
inc dword [edx + 0x24]
mov ecx, dword [edx]
lea eax, [eax + eax*4]
lea eax, [eax + 5]
add esi, ecx
lea eax, [ecx + eax*8]
cmp esi, eax
je 0x100db85f
mov ecx, dword [edx + 4]
mov dword [ebp - 0x12c], ecx
cmp eax, ecx
je 0x100db84b
lea edi, [eax + 0x20]
sub eax, esi
mov dword [ebp - 0x164], eax
mov eax, dword [eax + esi + 0x18]
mov ecx, esi
mov dword [esi + 0x18], eax
mov eax, dword [edi - 4]
mov dword [esi + 0x1c], eax
mov eax, dword [edi]
mov dword [esi + 0x20], eax
mov eax, dword [edi + 4]
mov dword [esi + 0x24], eax
lea eax, [edi - 0x20]
push eax
call fcn.100078b0
lea edi, [edi + 0x28]
add esi, 0x28
lea eax, [edi - 0x20]
cmp eax, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x164]
jne 0x100db802
mov edx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x118]
mov ecx, dword [edx + 4]
push edx
push ecx
push esi
call fcn.100881d0
mov edx, dword [ebp - 0x110]
add esp, 0xc
mov dword [edx + 4], esi
lea eax, [ebp - 0x218]
mov ecx, edx
push eax
push dword [edx]
lea eax, [ebp - 0x12c]
push eax
call fcn.100d7b60
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x108]
mov esi, dword [ebp - 0x184]
push fcn.10011750
mov eax, dword [eax]
sub dword [ecx], eax
lea eax, [ebp - 0x38]
push 3
push 0xc
push eax
mov dword [esi], 0
mov byte [ebp - 4], 0x14
call fcn.101e8aaf
lea ecx, [ebp - 0x1e8]
call fcn.10007640
mov eax, dword [ebp - 0xdc]
mov byte [ebp - 4], 0x10
test eax, eax
je 0x100db93d
mov esi, eax
cmp esi, dword [ebp - 0x1d8]
je 0x100db8ec
mov edi, dword [ebp - 0x1d8]
mov ecx, esi
call fcn.1008be00
add esi, 0x198
cmp esi, edi
jne 0x100db8d5
mov edi, dword [ebp - 0x118]
mov esi, dword [ebp - 0xdc]
mov eax, 0xa0a0a0a1
mov ecx, dword [ebp - 0xe4]
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
imul ecx, eax, 0x198
mov eax, esi
cmp ecx, 0x1000
jb 0x100db933
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100db933
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push esi
call fcn.101e8bf4
add esp, 8
mov eax, dword [ebp - 0x204]
mov byte [ebp - 4], 0x1a
test eax, eax
je 0x100db954
push eax
call fcn.100de900
add esp, 4
mov eax, dword [ebp - 0x138]
test eax, eax
je 0x100db973
mov ecx, dword [ebp - 0x1c0]
sub ecx, eax
and ecx, 0xfffffffc
push ecx
push eax
call fcn.100d6920
add esp, 8
mov eax, dword [ebp - 0x120]
test eax, eax
je 0x100db98f
sub edi, eax
lea ecx, [ebp - 0x1b8]
sar edi, 2
push edi
push eax
call fcn.10075300
lea ecx, [ebp - 0x180]
call fcn.10007640
mov esi, dword [ebp - 0x190]
test esi, esi
je 0x100db9df
lea ecx, [ebp - 0x190]
push ecx
push dword [ebp - 0x18c]
push esi
call fcn.10088160
mov ecx, dword [ebp - 0x160]
mov eax, 0x2aaaaaab
sub ecx, esi
add esp, 0xc
imul ecx
lea ecx, [ebp - 0x190]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.100c1a50
mov eax, dword [ebp - 0x140]
push dword [eax + 4]
lea eax, [ebp - 0x140]
push eax
mov ecx, eax
call fcn.100d6e60
push 0x1c
push dword [ebp - 0x140]
call fcn.101e8bf4
add esp, 8
lea ecx, [ebp - 0x244]
call fcn.100281a0
mov eax, dword [ebp - 0x184]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.101e8c02
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0x102058c8
push 0xa7
push str.C:Projectslibjxllibjxlmodular_transformenc_palette.cc
push str._s:_d:_JXL_ASSERT:__s_n
call fcn.100def30
add esp, 0x10
call fcn.100def20
call fcn.1000fb00
call fcn.1000fb00
call fcn.1000fae0
call fcn.10052210
call fcn.1000fb00
int3