Function at 0x100738a0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov esi, esp
mov dword [esi + 0xd8], ebp
mov dword [esi + 0x60], ecx
mov dword [esi + 0xdc], esp
mov dword [esi + 0xe8], 0xffffffff
lea eax, [esi + 0xe0]
mov dword [esi + 0xe4], 0x10074c90
mov ecx, dword fs:[0]
mov dword [esi + 0xe0], ecx
mov dword fs:[0], eax
mov eax, 0xfe4e0827
mov ecx, 0x720a40d6
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x3fc076cd
mov ecx, 0x914fa52d
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov eax, 0x97245755
mov edi, 0x176627b1
mov dword [esi + 0xc], eax
mov ebx, 0x51af1492
mov eax, 0x914fd648
lea ecx, [esi + 0x10]
xor edx, edx
mov dword [esi + 0x5c], edi
mov dword [esi + 0x14], edi
mov edx, dword [esi + 0xc]
mov dword [esi + 0x10], edx
mov dword [esi + 0x80], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x84], ebx
mov dword [esi + 0x18], ebx
vmovaps xmm0, xmmword [esi + 0x30]
vxorps xmm0, xmm0, xmmword [ecx]
vmovaps xmmword [esi + 0x30], xmm0
mov ebx, dword [ebp + 8]
mov ecx, dword [0x1029fc64]
xor edi, edi
mov eax, dword [ecx]
lea edx, [esi + 0x30]
push edx
call dword [eax + 0x40]
mov edx, dword [eax]
mov ecx, eax
push 0
call dword [edx + 0x40]
mov eax, dword [0x1029fc10]
xor byte [eax + 0xc0], 1
mov byte [ebx], 1
mov eax, dword [0x102a0464]
test al, 1
je 0x10074958
mov ecx, dword [0x102a0460]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
mov dword [esi + 0xe8], 0xffffffff
call eax
test eax, eax
je 0x100739b6
mov ecx, dword [0x102a0460]
mov eax, dword [ecx]
push 0
call dword [eax + 0x40]
mov ecx, dword [0x1029fc38]
mov eax, dword [ecx]
call dword [eax + 0x138]
test eax, eax
je 0x100748a6
mov edi, eax
mov ebx, dword [0x1029fb9c]
mov ecx, dword [ebx + 0x270]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0xa0]
vmovss xmm0, dword [esi + 0xa0]
vmovss dword [esi + 0x74], xmm0
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x274]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0x9c]
vmovss xmm0, dword [esi + 0x74]
vdivss xmm0, xmm0, dword [esi + 0x9c]
vmovss dword [esi + 0x74], xmm0
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x26c]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0x98]
vmovss xmm0, dword [esi + 0x74]
vmaxss xmm0, xmm0, dword [esi + 0x98]
vmovss dword [ebx + 0x3fc4], xmm0
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 0x24]
fstp xword [esi + 0x74]
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0x24]
fld xword [esi + 0x74]
fstp dword [ebx + 0x3fc8]
fstp dword [ebx + 0x3fcc]
mov edi, dword [0x1029fb9c]
mov byte [edi + 0x3fe6], 0
mov eax, dword [0x102a0464]
test al, 2
je 0x10074a1b
mov dword [esi + 0x74], eax
vmovss xmm0, dword [0x102a0468]
mov eax, dword [edi]
mov ecx, dword [edi + 0x1b4]
mov eax, dword [eax]
vucomiss xmm0, dword [ecx + eax]
jne 0x10073aa5
jnp 0x10073b5b
mov eax, dword [0x1029fbf4]
mov dword [eax + 0x3c], 0x3f800000
add eax, 0x33d4
push 0x5208
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [0x1029fbf8]
mov dword [eax + 0x18], 0
lea eax, [edi + 0x39c]
vxorps xmm0, xmm0, xmm0
vmovlps qword [edi + 0x360], xmm0
mov dword [edi + 0x3fa4], 0
mov byte [edi + 0x3fa8], 0
mov dword [edi + 0x3fac], 0
push 0x3c00
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ebx, dword [0x1029fc0c]
lea eax, [ebx + 8]
push 0x2d8
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
vxorps xmm0, xmm0, xmm0
vmovups ymmword [ebx + 0x2e0], ymm0
vmovups ymmword [ebx + 0x300], ymm0
vmovups ymmword [ebx + 0x320], ymm0
mov eax, dword [edi]
mov ecx, dword [edi + 0x1b4]
mov eax, dword [eax]
vmovss xmm0, dword [ecx + eax]
vmovss dword [0x102a0468], xmm0
mov eax, dword [esi + 0x74]
test al, 4
je 0x10074a42
mov ecx, dword [0x102a046c]
mov edi, dword [ebp + 0xc]
mov eax, dword [0x1029fbc4]
cmp byte [eax + 9], 0
je 0x10073ba8
test ecx, ecx
je 0x10073ba8
mov eax, dword [0x1029fb9c]
mov edx, dword [eax]
mov eax, dword [eax + 0x1e8]
mov edx, dword [edx]
xor ebx, ebx
cmp byte [eax + edx], 0
sete bl
lea eax, [ebx + ebx*2]
mov dword [esi + 0xe8], 0xffffffff
mov ebx, dword [ebp + 8]
jmp 0x10073bbb
xor eax, eax
mov dword [esi + 0xe8], 0xffffffff
test ecx, ecx
mov ebx, dword [ebp + 8]
je 0x10073bc4
mov edx, dword [ecx]
push eax
vzeroupper
call dword [edx + 0x40]
mov dword [esi + 0x10], 0x9ee0c4c
mov eax, dword [esi + 0x10]
bswap eax
mov dword [esi + 0x10], eax
add dword [esi + 0x10], 0xb3f31bbb
mov eax, dword [esi + 0x10]
rorx eax, eax, 0x1e
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
vcvtsi2ss xmm0, xmm1, eax
mov dword [esi + 0x10], 0xa8c4421f
mov eax, dword [esi + 0x10]
bswap eax
mov dword [esi + 0x10], eax
add dword [esi + 0x10], 0x60bd3c90
mov eax, dword [esi + 0x10]
rorx eax, eax, 0x1b
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
vcvtsi2ss xmm1, xmm1, eax
mov eax, dword [0x1029fbac]
bswap eax
mov edx, dword [0x1029fbb0]
add edx, eax
mov ecx, dword [0x1029fbb4]
ror edx, cl
vdivss xmm0, xmm0, xmm1
vdivss xmm0, xmm0, dword [edx + 0x20]
mov eax, dword [0x1029fb9c]
vmovss dword [eax + 0x3fdc], xmm0
mov eax, dword [edi + 0x14]
mov dword [esi + 0xd0], eax
vmovsd xmm0, qword [edi + 0xc]
vmovsd qword [esi + 0xc8], xmm0
mov eax, dword [edi + 0x14]
mov dword [esi + 0xc0], eax
vmovsd xmm0, qword [edi + 0xc]
vmovsd qword [esi + 0xb8], xmm0
mov ecx, dword [0x1029fbf8]
push edi
push ebx
vzeroupper
call fcn.1003dd20
test al, al
je 0x10073e24
mov byte [ebx], 0
mov ecx, dword [0x1029fbf8]
mov byte [ecx + 0x4a], 0
push edi
call fcn.1003d6a0
mov ecx, dword [0x1029fc10]
push edi
call fcn.1003a5d0
mov ecx, dword [0x1029fc10]
push 0
push ebx
push edi
call fcn.10037b20
mov dword [edi + 8], Ordinal_2
mov ecx, dword [0x1029fbf4]
mov eax, dword [edi + 4]
mov dword [esi + 0x10], 0xd78d3df9
mov edx, dword [esi + 0x10]
bswap edx
mov dword [esi + 0x10], edx
add dword [esi + 0x10], 0x6c27355
mov edx, dword [esi + 0x10]
rorx edx, edx, 1
mov dword [esi + 0x10], edx
mov edi, dword [esi + 0x10]
cdq
idiv edi
cmp edx, 0x96
jae 0x10074953
imul edi, edx, 0x8c
vxorps xmm0, xmm0, xmm0
vmovups ymmword [ecx + edi + 0x3440], ymm0
vmovups ymmword [ecx + edi + 0x3434], ymm0
vmovups ymmword [ecx + edi + 0x3414], ymm0
vmovups ymmword [ecx + edi + 0x33f4], ymm0
vmovups ymmword [ecx + edi + 0x33d4], ymm0
mov eax, dword [0x1029fb9c]
mov edx, dword [eax]
mov edx, dword [edx]
mov ebx, dword [eax + 0x20c]
vmovss xmm0, dword [ebx + edx]
mov edx, dword [0x1029fbf4]
vmovss dword [edx + 0x38], xmm0
lea ebx, [ecx + 0x33d4]
lea ecx, [ecx + edi + 0x33d4]
mov dword [esi + 0x60], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 0x178]
mov dword [esi + 0xc], eax
mov eax, dword [ecx]
mov dword [esi + 0x74], eax
mov ecx, dword [0x1029fc3c]
mov eax, dword [ecx]
mov dword [esi + 0x5c], eax
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x74]
push dword [edx + eax]
mov eax, dword [esi + 0x5c]
vzeroupper
call dword [eax + 0x10]
mov ecx, dword [0x1029fb9c]
test eax, eax
je 0x10073dc2
mov edx, dword [ecx + 0x15c]
vmovss xmm0, dword [edx + eax]
mov edx, dword [0x1029fbf4]
mov dword [esi + 0xc], edx
vmovss dword [edx + 0x30], xmm0
mov edx, dword [ecx + 0x160]
vmovss xmm0, dword [edx + eax]
mov eax, dword [esi + 0xc]
vmovss dword [eax + 0x34], xmm0
mov eax, dword [ecx]
mov eax, dword [eax]
mov edx, dword [ecx + 0x1b4]
vmovss xmm0, dword [edx + eax]
mov eax, dword [esi + 0x60]
vmovss dword [eax], xmm0
mov eax, dword [ecx]
mov ecx, dword [ecx + 0x180]
mov eax, dword [eax]
mov eax, dword [ecx + eax]
mov dword [ebx + edi + 0xc], eax
mov dword [ebx + edi + 8], eax
mov ecx, dword [ebp + 0xc]
vmovups ymm0, ymmword [ecx]
vmovups ymm1, ymmword [ecx + 0x20]
vmovups ymmword [ebx + edi + 0x28], ymm0
vmovups ymmword [ebx + edi + 0x48], ymm1
vmovups ymm0, ymmword [ecx + 0x40]
vmovups ymmword [ebx + edi + 0x68], ymm0
mov eax, dword [ecx + 0x60]
mov dword [ebx + edi + 0x88], eax
mov ebx, ecx
mov edi, dword [ebp + 8]
jmp 0x100743c0
mov eax, dword [0x1029fbf8]
mov byte [eax + 0x4a], 0
mov ecx, dword [0x1029fbf4]
call fcn.1003bfa0
mov eax, dword [0x1029fb9c]
mov byte [eax + 0x396], 0
mov ecx, dword [0x1029fbcc]
push edi
call fcn.10044110
vmovss xmm0, dword [edi + 0x24]
vmovss xmm1, dword [edi + 0x28]
vxorps xmm2, xmm2, xmm2
vfmadd231ss xmm2, xmm0, xmm0
vfmadd231ss xmm2, xmm1, xmm1
vmovss xmm0, dword [edi + 0x2c]
vfmadd213ss xmm0, xmm0, xmm2
vcvtss2sd xmm0, xmm0, xmm0
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
jb 0x10073e86
vsqrtsd xmm0, xmm0, xmm0
jmp 0x10073ea4
sub esp, 8
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esi + 0xb0]
vmovsd xmm0, qword [esi + 0xb0]
vcvtsd2ss xmm0, xmm0, xmm0
vmovss xmm1, dword [0x10147064]
vucomiss xmm1, xmm0
jb 0x10073ed8
mov eax, dword [0x1029fbc4]
cmp byte [eax + 8], 0
je 0x10073ed8
lea eax, [edi + 0x24]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov ecx, dword [0x1029fbf4]
push 0
push 1
push edi
call fcn.1003c180
mov ecx, dword [0x1029fbf8]
push edi
call fcn.1003d6a0
mov eax, dword [0x1029fb9c]
cmp byte [eax + 0x4005], 0
jne 0x10073f39
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x10073f39
mov eax, dword [eax + 0x108]
movzx eax, word [eax + ecx]
movzx ecx, ax
lea edx, [ecx - 0x1f4]
cmp edx, 0x19
ja 0x100748f9
mov edi, 0x24891e1
bt edi, edx
mov edi, dword [ebp + 0xc]
jae 0x100748f9
mov ecx, dword [0x1029fbcc]
lea eax, [esi + 0xb8]
push edi
push eax
call fcn.10046070
mov ecx, dword [0x1029fc10]
push edi
call fcn.1003a3d0
mov eax, dword [0x1029fc10]
movzx eax, byte [eax]
xor al, 1
mov byte [ebx], al
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x178]
mov edx, dword [ecx]
mov ecx, dword [0x1029fc3c]
mov edi, dword [ecx]
push dword [eax + edx]
call dword [edi + 0x10]
mov ecx, dword [esi + 0x60]
mov dword [ecx + 0xc], eax
test eax, eax
je 0x10073fa9
mov edx, dword [0x1029fb9c]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x108]
mov edi, dword [ecx]
movzx eax, word [edx + eax]
push eax
call dword [edi + 8]
mov ecx, dword [esi + 0x60]
jmp 0x10073fab
xor eax, eax
mov dword [ecx + 0x10], eax
mov ecx, dword [0x1029fb9c]
cmp byte [ecx + 0x3fc0], 0
je 0x10073ff4
mov edx, dword [esi + 0x60]
mov edx, dword [edx + 0xc]
test edx, edx
je 0x10073ff4
mov ecx, dword [ecx + 0x108]
movzx ecx, word [ecx + edx]
movzx edx, cx
lea edi, [edx - 0x1f4]
cmp edi, 0x19
ja 0x100748bc
mov ebx, 0x24891e1
bt ebx, edi
mov ebx, dword [ebp + 8]
jae 0x100748bc
mov ecx, dword [0x1029fc18]
push ebx
mov edi, dword [ebp + 0xc]
push edi
call fcn.10020a00
mov ecx, dword [0x1029fc14]
push edi
call fcn.10029890
mov eax, dword [0x102a0464]
test al, 8
je 0x10074b0a
test byte [edi + 0x30], 1
je 0x1007411a
mov eax, dword [0x1029fb9c]
cmp byte [eax + 0x4006], 0
mov dword [esi + 0xe8], 0xffffffff
jne 0x1007411a
mov ecx, dword [eax]
mov edi, dword [eax + 0x1b8]
mov ebx, dword [ecx]
mov ecx, dword [0x102a0470]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0x94]
vmovss xmm0, dword [esi + 0x94]
vmulss xmm1, xmm0, dword [edi + ebx + 8]
vmovsd xmm2, qword [edi + ebx]
mov ebx, dword [ebp + 8]
vbroadcastss xmm0, xmm0
vmulps xmm0, xmm0, xmm2
mov eax, dword [ebp + 0xc]
vmovsd xmm2, qword [eax + 0xc]
vsubps xmm0, xmm2, xmm0
vmovlps qword [eax + 0xc], xmm0
vmovss xmm2, dword [eax + 0x14]
vsubss xmm1, xmm2, xmm1
vmovss dword [eax + 0x14], xmm1
sub esp, 8
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov edi, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call edi
add esp, 8
mov eax, dword [ebp + 0xc]
fstp dword [eax + 0xc]
vmovss xmm0, dword [eax + 0x10]
sub esp, 8
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
mov edi, dword [ebp + 0xc]
add esp, 8
fstp dword [esi + 0x90]
vmovups xmm0, xmmword [edi + 0xc]
vinsertps xmm0, xmm0, dword [esi + 0x90], 0x10
vmovddup xmm1, qword [0x10145a60]
vmovddup xmm2, qword [0x10145a50]
vcmpltps xmm3, xmm2, xmm0
vmaxps xmm0, xmm1, xmm0
vblendvps xmm0, xmm0, xmm2, xmm3
vmovlps qword [edi + 0xc], xmm0
mov dword [edi + 0x14], 0
mov ecx, dword [0x1029fc10]
mov dword [esi + 0xe8], 0xffffffff
push edi
call fcn.1003a5d0
mov ecx, dword [0x1029fc10]
push 0
push ebx
push edi
call fcn.10037b20
mov eax, dword [0x1029fb9c]
cmp byte [eax + 0x4005], 0
je 0x10074369
mov ecx, dword [esi + 0x60]
mov ebx, dword [ecx + 0xc]
test ebx, ebx
je 0x10074369
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x108]
movzx edi, word [eax + ebx]
mov eax, dword [ecx]
push edi
call dword [eax + 8]
lea ecx, [edi - 0x31]
cmp cx, 0xfff9
ja 0x100741d0
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x30]
test cl, 1
jne 0x100741d0
test ecx, 0x800
je 0x10074369
mov ecx, dword [0x1029fb9c]
mov ecx, dword [ecx + 0x150]
vmovss xmm0, dword [ecx + ebx]
mov ecx, dword [0x1029fbac]
bswap ecx
mov edx, dword [0x1029fbb0]
add edx, ecx
mov ecx, dword [0x1029fbb4]
ror edx, cl
vucomiss xmm0, dword [edx + 0x10]
jae 0x10074369
cmp di, 0x40
jne 0x10074939
mov eax, dword [0x1029fb9c]
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 4]
mov dword [eax + 0x3f9c], ecx
mov ecx, dword [esi + 0x60]
cmp dword [ecx + 0x10], 0
je 0x100741f1
mov byte [eax + 0x3fa0], 1
mov ecx, dword [0x1029fbf8]
cmp dword [ecx + 0x1c], 0
je 0x10074215
test byte [edx + 0x30], 1
je 0x10074215
mov byte [eax + 0x3fe4], 1
mov eax, dword [ebp + 8]
mov byte [eax], 1
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x4018]
mov dword [eax + 0x4024], ecx
vmovsd xmm0, qword [eax + 0x4010]
vmovsd qword [eax + 0x401c], xmm0
cmp byte [eax + 0x396], 0
jne 0x1007435e
mov edi, dword [0x1029fc1c]
vmovss xmm0, dword [eax + 0x3fcc]
vaddss xmm0, xmm0, dword [eax + 0x3fc8]
mov eax, dword [0x1029fbac]
bswap eax
mov edx, dword [0x1029fbb0]
add edx, eax
mov ecx, dword [0x1029fbb4]
ror edx, cl
vmovss xmm1, dword [edx]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov ecx, dword [0x1029fbf8]
mov ecx, dword [ecx + 0x1c]
mov dword [esi + 0xac], eax
mov eax, 0x4010
add eax, dword [0x1029fb9c]
mov dword [esi + 0xa8], ecx
vmovss dword [esi + 0x10], xmm0
vmovss dword [esi + 0x30], xmm1
mov dword [esi + 0xa4], 0
lea ebx, [esi + 0xa8]
mov ecx, edi
lea edx, [esi + 0x10]
push edx
lea edx, [esi + 0x30]
push edx
lea edx, [esi + 0xac]
push edx
push ebx
lea edx, [esi + 0xa4]
push edx
push eax
call fcn.1002aea0
cmp dword [edi + 0x10], 0x80
jb 0x1007435e
mov eax, dword [edi + 8]
dec eax
and eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov ebx, dword [ecx + eax*4]
mov eax, dword [ebx + 0x30b0]
cmp eax, 0x10
jb 0x1007432a
mov ecx, dword [ebx + 0x309c]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x10074320
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
mov dword [esi + 0xc], edx
sub ecx, edx
cmp ecx, 0x20
jae 0x10074bdd
add eax, 0x24
mov edx, eax
mov ecx, dword [esi + 0xc]
push edx
push ecx
call fcn.100e81b0
add esp, 8
mov dword [ebx + 0x30ac], 0
mov dword [ebx + 0x30b0], 0xf
mov byte [ebx + 0x309c], 0
add ebx, 0xc
mov ecx, ebx
call fcn.1001d910
mov eax, dword [edi + 0xc]
inc eax
xor ecx, ecx
dec dword [edi + 0x10]
cmovne ecx, eax
mov dword [edi + 0xc], ecx
mov eax, dword [0x1029fbf8]
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x34], ecx
mov ecx, dword [0x1029fc0c]
mov edi, dword [ebp + 8]
push edi
mov ebx, dword [ebp + 0xc]
push ebx
call fcn.10036430
mov edx, dword [esi + 0x60]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x100743c0
mov ecx, dword [0x1029fbf4]
vmovss xmm0, dword [ecx + 0x30]
mov ecx, dword [0x1029fb9c]
mov ecx, dword [ecx + 0x15c]
vmovss dword [ecx + eax], xmm0
mov eax, dword [0x1029fbf4]
vmovss xmm0, dword [eax + 0x34]
mov eax, dword [edx + 0xc]
mov ecx, dword [0x1029fb9c]
mov ecx, dword [ecx + 0x160]
vmovss dword [ecx + eax], xmm0
mov ecx, dword [0x1029fc0c]
push edi
push ebx
vzeroupper
call fcn.10036430
movzx eax, byte [edi]
mov ecx, dword [0x1029fb9c]
mov byte [ecx + 0x3fe4], al
vmovss xmm0, dword [ebx + 0xc]
sub esp, 8
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov edi, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call edi
add esp, 8
fstp dword [ebx + 0xc]
vmovss xmm0, dword [ebx + 0x10]
sub esp, 8
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
add esp, 8
fstp dword [ebx + 0x10]
vmovss xmm0, dword [ebx + 0x14]
sub esp, 8
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
add esp, 8
fstp dword [ebx + 0x14]
mov edi, dword [0x1029fb9c]
mov ecx, dword [edi + 0x27c]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0x8c]
vmovss xmm0, dword [esi + 0x8c]
vmovaps xmmword [esi + 0x60], xmm0
mov ecx, dword [edi + 0x280]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0x88]
vbroadcastss xmm0, dword [0x10144e60]
vmovss xmm1, dword [esi + 0x88]
vxorps xmm0, xmm1, xmm0
vmovss xmm1, dword [ebx + 0xc]
vmovss xmm2, dword [ebx + 0x14]
vmaxss xmm0, xmm0, xmm1
vmovaps xmm3, xmmword [esi + 0x60]
vcmpltss xmm1, xmm3, xmm1
vblendvps xmm0, xmm0, xmm3, xmm1
vmovss dword [ebx + 0xc], xmm0
vmovss xmm0, dword [0x10148264]
vmaxss xmm0, xmm0, xmm2
vmovss xmm1, dword [0x10144b04]
vcmpltss xmm1, xmm1, xmm2
vbroadcastss xmm2, dword [0x10144b04]
vblendvps xmm0, xmm0, xmm2, xmm1
vmovss dword [ebx + 0x14], xmm0
mov ecx, dword [0x1029fbcc]
mov eax, dword [0x1029fb9c]
mov edx, dword [eax]
mov edi, dword [eax + 0x28]
mov dword [esi + 0x60], edi
mov edx, dword [edx]
mov eax, dword [eax + 0x54]
movzx eax, byte [eax + edx]
mov edi, ebx
lea ebx, [esi + 0xc8]
push eax
mov eax, dword [esi + 0x60]
push dword [eax + edx]
push ebx
mov ebx, dword [ebp + 8]
push edi
call fcn.10046770
mov eax, dword [0x1029fbb8]
bswap eax
mov edx, dword [0x1029fbbc]
add edx, eax
mov ecx, dword [0x1029fbc0]
ror edx, cl
cmp dword [edx + 0x4cb0], 0xe
jl 0x1007452e
mov byte [ebx], 1
mov eax, dword [0x1029fbf8]
mov byte [eax + 0x48], 0
mov eax, dword [0x1029fbb8]
bswap eax
mov edi, dword [0x1029fbbc]
add edi, eax
mov ecx, dword [0x1029fbc0]
ror edi, cl
cmp byte [ebx], 0
je 0x10074618
mov eax, dword [edi + 0x4cac]
mov ecx, dword [0x1029fbf8]
cmp eax, dword [ecx + 0x20]
jne 0x1007464a
mov edi, dword [0x1029fbf4]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [esi + 0x10], 0x766329
mov ecx, dword [esi + 0x10]
bswap ecx
mov dword [esi + 0x10], ecx
add dword [esi + 0x10], 0xd6c20a00
mov ecx, dword [esi + 0x10]
rorx ecx, ecx, 0xe
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
cdq
idiv ecx
cmp edx, 0x96
jae 0x10074953
imul ebx, edx, 0x8c
mov byte [edi + ebx + 0x33e8], 1
mov eax, dword [0x1029fbf8]
mov ecx, dword [0x1029fbb8]
bswap ecx
mov dword [esi + 0x60], edi
mov edi, dword [0x1029fbbc]
add edi, ecx
mov ecx, dword [0x1029fbc0]
ror edi, cl
xor edx, edx
sub edx, dword [edi + 0x4cb0]
mov ecx, dword [0x1029fbb8]
bswap ecx
mov edi, dword [0x1029fbbc]
add edi, ecx
mov ecx, dword [0x1029fbc0]
ror edi, cl
mov edi, dword [edi + 0x4cb0]
inc edi
mov ecx, eax
push edx
push 1
push edi
call fcn.1003e150
mov ecx, dword [esi + 0x60]
mov dword [ecx + ebx + 0x33e0], eax
jmp 0x1007464a
mov eax, dword [edi + 0x9c]
mov ebx, dword [eax + 0x2c]
mov dword [eax + 0x2c], 0
mov ecx, dword [edi + 0x9c]
mov eax, dword [ecx]
push 0
call dword [eax + 0xc0]
mov eax, dword [edi + 0x9c]
dec dword [eax + 0x18]
mov eax, dword [edi + 0x9c]
mov dword [eax + 0x2c], ebx
mov ecx, dword [0x1029fbf4]
call fcn.1003cb60
push dword [ebp + 0xc]
call fcn.10073510
add esp, 4
mov eax, dword [0x1029fbf8]
mov byte [eax + 0x15], 0
mov edi, dword [0x1029fb9c]
cmp byte [edi + 0x396], 0
jne 0x10074681
mov eax, dword [ebp + 0xc]
test byte [eax + 0x30], 1
je 0x100746ab
mov eax, dword [0x1029fbac]
bswap eax
mov edx, dword [0x1029fbb0]
add edx, eax
mov ecx, dword [0x1029fbb4]
ror edx, cl
vmovss xmm0, dword [edx + 0x10]
mov edi, dword [0x1029fb9c]
vmovss dword [edi + 0x368], xmm0
mov edx, dword [edi + 0x3ff8]
mov eax, dword [edi + 0x4000]
lea ecx, [eax + 1]
cmp edx, ecx
ja 0x100746d7
lea ecx, [edi + 0x3ff0]
push 1
call fcn.1003e650
mov edx, dword [edi + 0x3ff8]
mov eax, dword [edi + 0x4000]
dec edx
mov ebx, dword [edi + 0x3ffc]
and ebx, edx
mov dword [edi + 0x3ffc], ebx
add ebx, eax
and edx, ebx
mov eax, dword [edi + 0x3ff4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x10074722
push 0xc
mov dword [esi + 0x60], edx
call fcn.100e80cd
add esp, 4
mov ecx, dword [edi + 0x3ff4]
mov edx, dword [esi + 0x60]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x3ff8]
dec eax
and eax, ebx
mov ecx, dword [edi + 0x3ff4]
mov eax, dword [ecx + eax*4]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov eax, dword [edi + 0x4000]
lea ecx, [eax + 1]
mov dword [edi + 0x4000], ecx
add eax, dword [edi + 0x3ffc]
mov ecx, dword [edi + 0x3ff8]
dec ecx
and ecx, eax
mov eax, dword [edi + 0x3ff4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp + 8]
movzx ecx, byte [ecx]
mov byte [eax + 8], cl
mov edi, dword [ebp + 0xc]
mov ecx, dword [edi + 4]
mov dword [eax], ecx
mov byte [eax + 9], 0
mov dword [eax + 4], 0
mov eax, dword [0x1029fb9c]
mov ecx, dword [0x1029fbac]
bswap ecx
mov edx, dword [0x1029fbb0]
add edx, ecx
mov ecx, dword [0x1029fbb4]
ror edx, cl
vmovss xmm0, dword [0x10144ae0]
vdivss xmm1, xmm0, dword [edx + 0x20]
vcvttss2si ecx, xmm1
cmp dword [eax + 0x4000], ecx
jle 0x100747fa
nop
mov ecx, dword [0x1029fb9c]
mov edx, dword [ecx + 0x3ffc]
mov eax, dword [ecx + 0x4000]
dec eax
mov dword [ecx + 0x4000], eax
inc edx
test eax, eax
cmove edx, eax
mov dword [ecx + 0x3ffc], edx
mov ecx, dword [0x1029fbac]
bswap ecx
mov edx, dword [0x1029fbb0]
add edx, ecx
mov ecx, dword [0x1029fbb4]
ror edx, cl
vdivss xmm1, xmm0, dword [edx + 0x20]
vcvttss2si ecx, xmm1
cmp eax, ecx
jg 0x100747b0
mov ecx, dword [0x1029fbd8]
mov dword [esi + 0xe8], 0xffffffff
call fcn.10040ea0
mov ebx, dword [0x1029fbf4]
mov eax, dword [edi + 4]
mov dword [esi + 0x10], 0xbefb9e3a
mov edx, dword [esi + 0x10]
bswap edx
mov dword [esi + 0x10], edx
add dword [esi + 0x10], 0xd8210442
mov edx, dword [esi + 0x10]
rorx edx, edx, 0x15
mov dword [esi + 0x10], edx
mov ecx, edi
mov edi, dword [esi + 0x10]
cdq
idiv edi
cmp edx, 0x96
jae 0x10074953
imul eax, edx, 0x8c
mov edx, dword [ecx + 0x2c]
mov dword [ebx + eax + 0x33f4], edx
mov edi, dword [ebp + 0x10]
vmovsd xmm0, qword [ecx + 0x24]
vmovsd qword [ebx + eax + 0x33ec], xmm0
mov eax, dword [0x1029fb9c]
mov byte [eax + 0x3fe6], 1
mov edx, dword [ecx + 0x60]
mov dword [edi + 0x60], edx
vmovups ymm0, ymmword [ecx + 0x40]
vmovups ymmword [edi + 0x40], ymm0
vmovups ymm0, ymmword [ecx]
vmovups ymm1, ymmword [ecx + 0x20]
vmovups ymmword [edi + 0x20], ymm1
vmovups ymmword [edi], ymm0
vzeroupper
call dword [eax + 8]
mov dword [edi + 0x64], eax
mov eax, dword [esi + 0xe0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
cmp edx, 0x2a
je 0x10073ff4
cmp edx, 0x3b
je 0x10073ff4
test eax, eax
je 0x10073ff4
cmp cx, 0x40
je 0x10073ff4
cmp dword [eax + 0xc8], 9
je 0x10073ff4
mov eax, dword [ebp + 0xc]
and byte [eax + 0x30], 0xfe
jmp 0x10073ff4
cmp ecx, 0x2a
je 0x10073f39
cmp ecx, 0x3b
je 0x10073f39
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x10073f39
cmp ax, 0x40
je 0x10073f39
cmp dword [ecx + 0xc8], 9
je 0x10073f39
and byte [edi + 0x30], 0xfe
jmp 0x10073f39
test eax, eax
je 0x10074369
cmp dword [eax + 0xc8], 0
jne 0x10074369
jmp 0x100741d0
call fcn.1002a140
or eax, 1
mov dword [0x102a0464], eax
mov eax, 0xe5600827
mov ecx, 0x673550d0
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x37c677f7
mov ecx, 0xe51cb521
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov eax, 0xb5e54356
mov ecx, 0x8a1068f3
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0x826e4bac
mov ecx, 0x22b07312
mov edx, dword [esi + 0x5c]
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x80]
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x84]
mov dword [esi + 0x18], edx
mov edx, 0xd68c3737
mov ebx, 0xfa7f1aa3
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], edx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x48], eax
mov dword [esi + 0x28], eax
lea eax, [esi + 0x10]
mov ecx, dword [0x1029fc64]
vmovaps xmm0, xmmword [esi + 0x30]
vxorps xmm0, xmm0, xmmword [eax]
vmovaps xmmword [esi + 0x30], xmm0
vmovaps xmm0, xmmword [esi + 0x40]
vxorps xmm0, xmm0, xmmword [eax + 0x10]
vmovaps xmmword [esi + 0x40], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov dword [esi + 0xe8], 0
lea edx, [esi + 0x30]
push edx
call eax
mov ecx, eax
mov dword [0x102a0460], eax
jmp 0x10073994
or eax, 2
mov dword [esi + 0x74], eax
mov dword [0x102a0464], eax
mov eax, dword [edi]
mov ecx, dword [edi + 0x1b4]
mov edx, dword [eax]
vmovss xmm0, dword [ecx + edx]
vmovss dword [0x102a0468], xmm0
jmp 0x10073a96
or eax, 4
mov dword [0x102a0464], eax
mov eax, 0xe7453222
mov ecx, 0x733949de
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x36da76f7
mov ecx, 0xe33fa517
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov eax, 0x89e85652
mov ecx, 0x8d1072d0
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0x826e4bac
mov ecx, 0x22b07312
mov edx, dword [esi + 0x5c]
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x80]
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x84]
mov dword [esi + 0x18], edx
mov edx, 0xd68c3737
mov edi, 0xfa7f1aa3
mov dword [esi + 0x24], edi
mov dword [esi + 0x20], edx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
xor eax, eax
lea edx, [esi + 0x10]
mov ecx, dword [0x1029fc64]
vmovaps xmm0, xmmword [esi + 0x30]
vxorps xmm0, xmm0, xmmword [edx]
vmovaps xmmword [esi + 0x30], xmm0
vmovaps xmm0, xmmword [esi + 0x40]
vxorps xmm0, xmm0, xmmword [edx + 0x10]
vmovaps xmmword [esi + 0x40], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov dword [esi + 0xe8], 1
lea edx, [esi + 0x30]
push edx
vzeroupper
call eax
mov ecx, eax
mov dword [0x102a046c], eax
jmp 0x10073b6c
or eax, 8
mov dword [0x102a0464], eax
mov eax, 0xe7453222
mov ecx, 0x653949de
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x38c077f7
mov ecx, 0xf23c8924
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov eax, 0xd6e95b56
mov ecx, 0xfa7f1aa3
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x14], eax
mov eax, 0xfa7f1aa3
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], ecx
mov ecx, 0x826e4bac
mov edx, dword [esi + 0x80]
mov dword [esi + 0x1c], edx
mov edx, 0x22b07312
mov edi, dword [esi + 0x84]
mov dword [esi + 0x18], edi
mov edi, 0xd68c3737
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], edi
mov dword [esi + 0x4c], edx
mov dword [esi + 0x48], ecx
mov dword [esi + 0x2c], edx
mov dword [esi + 0x28], ecx
xor eax, eax
lea edx, [esi + 0x10]
mov ecx, dword [0x1029fc64]
vmovaps xmm0, xmmword [esi + 0x30]
vxorps xmm0, xmm0, xmmword [edx]
vmovaps xmmword [esi + 0x30], xmm0
vmovaps xmm0, xmmword [esi + 0x40]
vxorps xmm0, xmm0, xmmword [edx + 0x10]
vmovaps xmmword [esi + 0x40], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov dword [esi + 0xe8], 2
lea edx, [esi + 0x30]
push edx
call eax
mov dword [0x102a0470], eax
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
test byte [edi + 0x30], 1
jne 0x10074027
jmp 0x1007411a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop word cs:[eax + eax]
push ebp
sub esp, 0x18
lea esi, [ebp - 0xec]
mov ebp, dword [esi + 0xd8]
and byte [0x102a0464], 0xfb
add esp, 0x18
pop ebp
ret