Function at 0x10003d40
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1017c8d0
mov eax, dword fs:[0]
push eax
sub esp, 0x80
push ebx
push esi
push edi
mov eax, dword [0x101ce084]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov eax, dword [0x102223ec]
mov ecx, dword [0x10222420]
mov esi, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov ecx, dword [0x102223ec]
push eax
call dword [esi + 0xc]
mov ebx, eax
mov dword [ebp - 0x2c], ebx
test ebx, ebx
jne 0x10003daf
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [0x102223ec]
mov edx, dword [ebx + 0x2ee8]
and edx, 0xfff
push edx
mov eax, dword [ecx]
call dword [eax + 0xc]
mov edi, eax
test edi, edi
je 0x10003d99
mov eax, dword [0x102224a0]
movss xmm1, dword [0x102c7898]
movq xmm0, qword [eax + ebx]
mov eax, dword [eax + ebx + 8]
mov dword [ebp - 0x60], eax
mov eax, dword [0x102224dc]
movq qword [ebp - 0x68], xmm0
movq xmm0, qword [eax + ebx]
mov eax, dword [eax + ebx + 8]
movq qword [ebp - 0x5c], xmm0
movss xmm0, dword [ebp - 0x68]
addss xmm0, dword [ebp - 0x5c]
mov dword [ebp - 0x54], eax
mov eax, dword [0x1022262c]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [ebp - 0x64]
addss xmm0, dword [ebp - 0x58]
movzx eax, word [eax + edi]
movzx ecx, ax
mov dword [ebp - 0x30], ecx
movzx ecx, ax
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [ebp - 0x60]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
addss xmm0, dword [ebp - 0x54]
movss dword [ebp - 0x48], xmm0
movss xmm0, dword [0x102c7894]
cmp ax, 0x1f
je 0x10003e86
mov eax, dword [0x1022268c]
cmp dword [eax + edi], 2
jle 0x10003e86
mov eax, dword [0x102224ac]
lea ecx, [ebp - 0x40]
mov edx, dword [ebp + 8]
mov esi, dword [eax + edx]
cvttss2si eax, xmm0
lea edx, [esi + 0xa]
mov dword [ebp - 0x40], edx
cmp eax, edx
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x3c]
cmovle ecx, eax
mov eax, dword [ecx]
jmp 0x10003e94
mov eax, dword [0x102224ac]
mov edx, dword [ebp + 8]
mov esi, dword [eax + edx]
lea eax, [esi + 0xa]
cmp word [ebp - 0x38], 0x1f
mov dword [ebp - 0x1c], eax
je 0x10003ec8
mov eax, dword [0x1022268c]
cmp dword [eax + edi], 2
jle 0x10003ec8
cvttss2si eax, xmm0
lea edx, [esi + 0xa]
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], edx
lea esi, [ebp - 0x3c]
cmp eax, edx
mov dword [ebp - 0x3c], eax
cmovle ecx, esi
mov ecx, dword [ecx]
mov dword [ebp - 0x20], ecx
jmp 0x10003ece
lea eax, [esi + 0xa]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x48]
movq xmm3, qword [ebp - 0x50]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x68]
push ecx
push eax
mov dword [ebp - 0x84], 0x10224030
mov dword [ebp - 0x80], edx
movss dword [ebp - 0x7c], xmm1
movq qword [ebp - 0x78], xmm3
mov dword [ebp - 0x6c], ebx
call fcn.10004280
push ecx
lea eax, [ebp - 0x5c]
mov dword [ebp - 4], 0
push eax
call fcn.10004280
mov byte [ebp - 4], 1
or edi, 0xffffffff
mov eax, dword [ebp - 0x68]
mov esi, eax
movss xmm0, dword [ebp - 0x48]
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x28], 0
movss dword [ebp - 0x10], xmm0
cmp eax, dword [ebp - 0x64]
je 0x10003ff9
movss xmm0, dword [ebp - 0x4c]
xor eax, eax
cmp word [ebp - 0x34], 0x1f
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [ebp - 0x50]
sete al
dec eax
movss dword [ebp - 0x18], xmm0
mov dword [ebp - 0x40], eax
nop dword [eax]
movq xmm0, qword [esi]
push eax
mov eax, dword [esi + 8]
push edx
push ebx
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov eax, esp
mov ecx, dword [ebp - 0x48]
movq qword [eax], xmm3
mov dword [eax + 8], ecx
lea eax, [ebp - 0x8c]
push eax
call fcn.100066b0
mov eax, dword [ebp - 0x8c]
cmp eax, edi
jle 0x10003fca
cmp byte [ebp - 0x80], 0
mov edi, eax
mov edx, dword [ebp - 0x1c]
movss xmm2, dword [esi]
movss xmm1, dword [esi + 4]
movss xmm0, dword [esi + 8]
cmovne edx, dword [ebp - 0x20]
movss dword [ebp - 0x18], xmm2
movss dword [ebp - 0x14], xmm1
movss dword [ebp - 0x10], xmm0
mov dword [ebp - 0x28], edx
jmp 0x10003fd9
movss xmm0, dword [ebp - 0x10]
movss xmm1, dword [ebp - 0x14]
movss xmm2, dword [ebp - 0x18]
movq xmm3, qword [ebp - 0x50]
add esi, 0x10
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp + 8]
cmp esi, dword [ebp - 0x64]
jne 0x10003f60
mov dword [ebp - 0x3c], edi
movq xmm3, xmm3
jmp 0x1000400d
movss xmm1, dword [ebp - 0x4c]
movss xmm2, dword [ebp - 0x50]
movss dword [ebp - 0x14], xmm1
movss dword [ebp - 0x18], xmm2
mov ebx, dword [ebp - 0x5c]
xor eax, eax
mov esi, ebx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], eax
cmp ebx, dword [ebp - 0x58]
je 0x10004182
movss xmm0, dword [ebp - 0x60]
xor ecx, ecx
cmp word [ebp - 0x30], 0x1f
mov edi, dword [ebp - 0x2c]
movss dword [ebp - 0x24], xmm0
sete cl
movss xmm0, dword [ebp - 0x64]
dec ecx
movss dword [ebp - 0x30], xmm0
or ebx, 0xffffffff
movss xmm0, dword [ebp - 0x68]
mov dword [ebp - 0x44], ecx
movss dword [ebp - 0x34], xmm0
nop dword [eax]
movq xmm0, qword [esi]
mov eax, dword [esi + 8]
push ecx
push edx
push edi
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov eax, esp
mov ecx, dword [ebp - 0x48]
movq qword [eax], xmm3
mov dword [eax + 8], ecx
lea eax, [ebp - 0x8c]
push eax
call fcn.100066b0
mov eax, dword [ebp - 0x8c]
cmp eax, ebx
jle 0x100040d0
cmp byte [ebp - 0x80], 0
mov ebx, eax
mov eax, dword [ebp - 0x1c]
movss xmm2, dword [esi]
movss xmm1, dword [esi + 4]
movss xmm0, dword [esi + 8]
cmovne eax, dword [ebp - 0x20]
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x40], ecx
movss dword [ebp - 0x34], xmm2
movss dword [ebp - 0x30], xmm1
movss dword [ebp - 0x24], xmm0
mov dword [ebp - 0x38], eax
jmp 0x100040e2
movss xmm0, dword [ebp - 0x24]
movss xmm1, dword [ebp - 0x30]
movss xmm2, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
movq xmm3, qword [ebp - 0x50]
add esi, 0x10
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x44]
cmp esi, dword [ebp - 0x58]
jne 0x10004060
mov edi, dword [ebp - 0x3c]
cmp ebx, eax
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x5c]
jl 0x10004173
mov ecx, dword [ebp - 0x24]
cmp edi, dword [ebp - 0x28]
jl 0x1000415b
cmp ecx, edi
jg 0x1000415b
mov eax, dword [ebp - 0x40]
add eax, 0xfffffffd
cmp eax, 3
ja 0x1000413e
mov eax, dword [0x102224ac]
mov edx, dword [eax + edx]
lea eax, [edx + 0xa]
cmp ecx, eax
jg 0x1000415b
cmp edi, edx
jg 0x1000413e
mov eax, edi
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jl 0x1000415b
mov eax, dword [ebp + 0xc]
movss xmm0, dword [ebp - 0x18]
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x14]
movss dword [eax + 4], xmm0
movss xmm0, dword [ebp - 0x10]
jmp 0x10004199
mov eax, dword [ebp + 0xc]
movss dword [eax], xmm2
movss dword [eax + 4], xmm1
movss dword [eax + 8], xmm0
mov eax, dword [ebp + 0x10]
mov dword [eax], ecx
jmp 0x100041a3
movss xmm0, dword [ebp - 0x10]
movss xmm1, dword [ebp - 0x14]
movss xmm2, dword [ebp - 0x18]
cmp edi, dword [ebp - 0x28]
jge 0x1000418d
mov byte [ebp + 0xb], 0
jmp 0x100041a7
mov eax, dword [ebp + 0xc]
movss dword [eax], xmm2
movss dword [eax + 4], xmm1
movss dword [eax + 8], xmm0
mov eax, dword [ebp + 0x10]
mov dword [eax], edi
mov byte [ebp + 0xb], 1
test ebx, ebx
je 0x10004205
mov eax, dword [ebp - 0x54]
sub eax, ebx
sar eax, 4
cmp eax, 0xfffffff
jbe 0x100041c0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
shl eax, 4
cmp eax, 0x1000
jb 0x100041fc
test bl, 0x1f
je 0x100041d5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [ebx - 4]
cmp eax, ebx
jb 0x100041e2
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
sub ebx, eax
cmp ebx, 4
jae 0x100041ef
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
cmp ebx, 0x23
jbe 0x100041fa
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov ebx, eax
push ebx
call fcn.1017b3e7
add esp, 4
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x10004267
mov ecx, dword [ebp - 0x60]
sub ecx, eax
sar ecx, 4
cmp ecx, 0xfffffff
jbe 0x10004222
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
shl ecx, 4
cmp ecx, 0x1000
jb 0x1000425e
test al, 0x1f
je 0x10004237
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov ecx, dword [eax - 4]
cmp ecx, eax
jb 0x10004244
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
sub eax, ecx
cmp eax, 4
jae 0x10004251
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
cmp eax, 0x23
jbe 0x1000425c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, ecx
push eax
call fcn.1017b3e7
add esp, 4
mov al, byte [ebp + 0xb]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc