Function at 0x4f4de0
Capabilities:
Log keystrokes
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x350
mov esi, esp
mov dword [esi + 0x338], ebp
mov dword [esi + 0x33c], esp
mov dword [esi + 0x348], 0xffffffff
mov dword [esi + 0x344], 0x703f10
mov edi, ecx
lea eax, [esi + 0x340]
mov ebx, edx
mov ecx, dword fs:[0]
mov dword [esi + 0x340], ecx
mov dword fs:[0], eax
lea eax, [esi + 0x150]
mov dword [esi + 0x154], 0
mov dword [esi + 0x150], 0
push eax
call dword [sym.imp.kernel32.dll_QueryPerformanceCounter]
test eax, eax
je 0x4fa0ab
mov ecx, dword [esi + 0x150]
mov edx, dword [esi + 0x154]
mov dword [esi + 0x2d0], edi
call fcn.006b86a0
cmp byte [ebx + 0x1d8], 1
mov dword [esi + 0x2dc], eax
mov dword [esi + 0x2d8], edx
mov dword [esi + 0x2d4], ecx
mov dword [esi + 0x84], ebx
jne 0x4f51a6
mov eax, dword [ebx + 0x1c4]
lea edi, [ebx + 0x1c4]
test eax, eax
cmove edi, eax
je 0x4f4f0b
call dword [sym.imp.user32.dll_GetActiveWindow]
test eax, eax
je 0x4f4f12
mov edx, dword [edi + 8]
mov ebx, dword [edi]
mov dword [esi + 0x40], eax
test edx, edx
je 0x4f4f19
js 0x4fa3ff
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
mov dword [esi + 0x10], ebx
test eax, eax
jne 0x4f4eea
mov dword [esi + 4], edx
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov edx, dword [esi + 4]
test eax, eax
je 0x4f4eff
mov dword [0x919820], eax
push edx
push 0
push eax
mov ebx, edx
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, ebx
mov ebx, dword [esi + 0x10]
test eax, eax
jne 0x4f4f1e
mov ecx, 1
call fcn.00709d20
ud2
xor eax, eax
jmp 0x4f51a0
mov al, 1
jmp 0x4f519a
mov eax, 1
push edx
push ebx
mov dword [esi + 0x10], eax
push eax
mov ebx, edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [edi + 0xc]
cmp ecx, 0x3fffffff
ja 0x4f4ffd
mov edi, dword [edi + 0x10]
lea eax, [ecx*4]
mul edi
jo 0x4f4ffd
cmp eax, ebx
ja 0x4f4ffd
mov eax, dword [esi + 0x10]
mov dword [esi + 4], ebx
mov dword [esi + 0x348], 1
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], ebx
mov dword [esi + 0x158], ebx
mov dword [esi + 0x15c], ecx
mov dword [esi + 0x160], edi
push 0xb
call dword [sym.imp.user32.dll_GetSystemMetrics]
lea ecx, [esi + 0x150]
mov edx, eax
call fcn.00508f40
test eax, eax
je 0x4f9b84
push eax
push 1
push 0x80
push dword [esi + 0x40]
call sub.user32.dll_SendMessageW
push 0x31
call dword [sym.imp.user32.dll_GetSystemMetrics]
lea ecx, [esi + 0x150]
mov edx, eax
call fcn.00508f40
test eax, eax
je 0x4f9c6b
push eax
push 0
push 0x80
push dword [esi + 0x40]
call sub.user32.dll_SendMessageW
cmp dword [esi + 4], 0
je 0x4f4ff6
push dword [esi + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov al, 2
jmp 0x4f519a
test ebx, ebx
je 0x4f5012
push dword [esi + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f5035
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa3cc
mov dword [0x919820], eax
push 0x10
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4fa3cc
mov dword [eax + 0xc], 0x61746144
mov dword [eax + 8], 0x6e6f6349
mov dword [eax + 4], 0x2064696c
mov dword [eax], 0x61766e49
mov dword [esi + 0x118], eax
mov dword [esi + 0x11c], 0x10
mov dword [esi + 0x120], 0x10
mov eax, dword [0x919aa8]
cmp eax, 1
jbe 0x4f5184
lea eax, [esi + 0x118]
mov ecx, str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
lea edx, [esi + 0x238]
mov dword [esi + 0x238], eax
mov dword [esi + 0x23c], 0x4250a0
mov eax, dword [0x91975c]
mov dword [esi + str.Invalid_icon:], 0x7405cc
mov dword [esi + 0x1f0], 1
mov dword [esi + 0x1f4], edx
lea edx, [esi + 0x1c0]
mov dword [esi + 0x1f8], 1
mov dword [esi + 0x1fc], 0
mov dword [esi + 0x1e0], 2
mov dword [esi + 0x1e4], str.eframe::native::app_iconC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001feframe_0.22.0_src_native_app_icon.rs
mov dword [esi + 0x1e8], 0x18
mov dword [esi + 0x1c8], 0
mov dword [esi + 0x1d0], 0x18
mov dword [esi + 0x1cc], str.eframe::native::app_iconC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001feframe_0.22.0_src_native_app_icon.rs
mov dword [esi + 0x1d4], 0
mov dword [esi + 0x1dc], 0x6e
mov dword [esi + 0x1d8], 0x7404ec
mov dword [esi + 0x1c0], 1
mov dword [esi + 0x1c4], 0x88
mov dword [esi + 0x348], 2
cmp eax, 2
mov eax, 0x8b82b8
cmove eax, dword [0x9192e0]
cmove ecx, dword [str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs]
push edx
push ecx
call dword [eax + 0x14]
add esp, 8
cmp dword [esi + 0x11c], 0
je 0x4f5198
push dword [esi + 0x118]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
xor eax, eax
mov ebx, dword [esi + 0x84]
mov byte [ebx + 0x1d8], al
mov edi, dword [ebx + 0x1dc]
mov eax, dword [edi + 8]
test al, 8
jne 0x4f6d2d
mov ecx, eax
add ecx, 0x10
jb 0x4f6d2d
lock cmpxchg dword [edi + 8], ecx
jne 0x4f6d2d
mov eax, 0xfffffff0
movss xmm0, dword [edi + 0x37c]
mov ebx, dword [ebp + 0x10]
lock xadd dword [edi + 8], eax
mov dword [esi + 0x348], 0xffffffff
and eax, 0xfffffff2
cmp eax, 0x12
je 0x4f765d
mov edi, dword [esi + 0x84]
lea ecx, [esi + 0x1c0]
mov edx, ebx
lea eax, [edi + 0x1e0]
mov dword [esi + 0x2cc], eax
push eax
call fcn.004f4570
add esp, 4
movsd xmm0, qword [esi + 0x1d8]
mov eax, dword [esi + 0x1e0]
movsd xmm1, qword [esi + 0x1c8]
movsd qword [edi + 0xd8], xmm0
movsd xmm0, qword [esi + 0x1d0]
mov dword [edi + 0xe0], eax
movsd qword [edi + 0xc8], xmm1
movsd qword [edi + 0xd0], xmm0
movsd xmm0, qword [esi + 0x1c0]
movsd qword [edi + 0xc0], xmm0
movups xmm0, xmmword [edi + 0xa4]
mov ecx, dword [edi + 0x78]
mov edx, dword [edi + 0x7c]
movaps xmmword [esi + 0x10], xmm0
push dword [edi + 0x80]
call fcn.006b8b50
add esp, 4
movd xmm1, eax
movd xmm0, edx
mov eax, dword [ebx + 4]
mov dword [edi + 4], 0
mov dword [edi], 1
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x7258b0]
subpd xmm1, xmmword [0x7258c0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
movd xmm1, ecx
lea ecx, [esi + 0x150]
por xmm1, xmmword [0x7259c0]
subsd xmm1, qword [0x725628]
divsd xmm1, qword [0x725b78]
addsd xmm1, xmm0
xorpd xmm0, xmm0
movapd xmmword [esi + 0x100], xmm1
movsd qword [edi + 8], xmm1
movapd xmmword [esi + 0x150], xmm0
push ecx
push eax
call dword [sym.imp.user32.dll_GetClientRect]
test eax, eax
je 0x4fa0f2
movq xmm0, qword [esi + 0x150]
movq xmm1, qword [esi + 0x158]
pxor xmm4, xmm4
xorps xmm2, xmm2
psubd xmm1, xmm0
movdqa xmm0, xmmword [0x7259c0]
punpckldq xmm1, xmm4
por xmm1, xmm0
subpd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movaps xmm1, xmmword [esi + 0x10]
shufps xmm1, xmm1, 0
divps xmm0, xmm1
xorps xmm1, xmm1
movaps xmm3, xmm0
cmpltps xmm2, xmm0
shufps xmm3, xmm0, 0x55
addps xmm0, xmm4
cmpltps xmm1, xmm3
andps xmm1, xmm2
movd eax, xmm1
and eax, 1
mov dword [edi + 0x20], eax
movlpd qword [edi + 0x24], xmm4
movlps qword [edi + 0x2c], xmm0
movsd xmm1, qword [edi + 0x28]
movsd xmm0, qword [edi + 0x20]
mov dword [edi + 0x20], 0
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x10]
movsd qword [esi + 0x1c8], xmm1
movd xmm1, dword [edi + 0x14]
mov dword [edi + 0x10], 0
movsd qword [esi + 0x1c0], xmm0
mov dword [esi + 0x1d0], eax
movsd xmm0, qword [edi + 0x18]
mov dword [edi + 0x18], 0
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [esi + 0x90], ecx
mov edx, dword [edi + 0x5c]
movzx ebx, byte [edi + 0x60]
mov ecx, dword [edi + 0x3c]
movd dword [esi + 0x58], xmm1
movaps xmmword [esi + 0x270], xmm0
movss xmm0, dword [edi + 0x58]
mov dword [esi + 0xc4], edx
mov byte [esi + 0xc8], bl
mov dword [esi + 0x2b0], ecx
movss dword [esi + 0x260], xmm0
movq xmm0, qword [edi + 0x34]
mov dword [edi + 0x34], 8
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov edx, dword [edi + 0x48]
movq qword [esi + 0x2a8], xmm0
test edx, edx
mov dword [esi + 0xc], edx
je 0x4f567a
xor ebx, ebx
cmp edx, 0x4924925
setb al
jae 0x4fa1a8
lea ecx, [edx + edx*8]
mov bl, al
mov edi, edx
lea ecx, [ecx + ecx*2]
shl ebx, 2
add ecx, edx
test ecx, ecx
mov dword [esi + 0x20], ecx
js 0x4fa1bc
mov ecx, dword [esi + 0x84]
mov eax, dword [ecx + 0x40]
mov dword [esi + 0x2c], eax
je 0x4f6d0a
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f5493
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4f6d14
mov dword [0x919820], eax
push dword [esi + 0x20]
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [esi + 0x84]
test eax, eax
je 0x4f6d14
mov dword [esi + 0x238], eax
mov dword [esi + 0x23c], edi
mov edi, dword [esi + 0x2c]
add eax, 0xc
xor edx, edx
mov dword [esi + 0x240], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x70], eax
jmp 0x4f5577
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov edx, ebx
je 0x4f9f50
add edi, 0x1c
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x24], eax
mov dword [esi + 0x30], edi
mov edi, dword [esi + 0x40]
inc edi
push ebx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esi + 0x150]
movsd xmm1, qword [esi + 0x158]
mov eax, dword [esi + 0x70]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x40], edi
movsd qword [esi + 0x118], xmm0
movsd qword [esi + 0x120], xmm1
mov dword [eax + edx - 0xc], ecx
mov dword [eax + edx - 8], ebx
mov dword [eax + edx - 4], ebx
mov ecx, dword [esi + 0x84]
movq xmm0, qword [esi + 0x118]
movq xmm1, qword [esi + 0x120]
movq qword [eax + edx], xmm0
movq qword [eax + edx + 8], xmm1
add edx, 0x1c
cmp dword [esi + 0xc], edi
mov edi, dword [esi + 0x30]
je 0x4f5690
cmp dword [esi + 0x20], edx
je 0x4f5690
movzx ecx, byte [edi + 0x18]
mov dword [esi + 4], edx
cmp cl, 2
je 0x4f561e
mov eax, dword [esi + 0x2c]
mov byte [esi + 0x30], cl
mov ebx, dword [eax + edx + 0xc]
mov edx, dword [eax + edx + 0x14]
test edx, edx
mov dword [esi + 0x10], edx
mov dword [esi + 0x24], ebx
je 0x4f55e7
js 0x4fa035
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f55d4
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4f9fad
mov dword [0x919820], eax
mov edx, dword [esi + 0x10]
push edx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
jne 0x4f55ec
jmp 0x4f9fad
mov eax, 1
mov ebx, dword [esi + 0x10]
mov dword [esi + 0xd0], eax
push ebx
push dword [esi + 0x24]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xd0]
movzx ecx, byte [esi + 0x30]
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], ebx
mov dword [esi + 0x158], ebx
mov byte [esi + 0x15c], cl
mov ecx, dword [edi + 8]
mov edx, dword [edi]
test ecx, ecx
mov dword [esi + 0x10], ecx
je 0x4f5670
js 0x4f9f99
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
mov ebx, edx
test eax, eax
jne 0x4f54e0
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4f9f50
mov dword [0x919820], eax
mov ecx, dword [esi + 0x10]
jmp 0x4f54e0
mov eax, 1
jmp 0x4f54f4
mov dword [esi + 0x238], 4
mov ecx, edi
mov dword [esi + 0x23c], 0
mov eax, dword [esi + 0xc]
movsd xmm0, qword [esi + 0x238]
movsd xmm1, qword [esi + 0x1c8]
mov dh, byte [esi + 0xc8]
mov edi, dword [esi + 0x2b0]
mov ebx, ecx
mov dword [esi + 0x348], 0xffffffff
mov dword [esi + 0x198], eax
mov eax, dword [ecx + 0x54]
movsd qword [esi + 0x190], xmm0
movsd xmm0, qword [ecx + 0x4c]
mov dword [ecx + 0x4c], 4
mov dword [ecx + 0x50], 0
mov dword [ecx + 0x54], 0
mov dl, byte [ecx + 0x61]
mov dword [esi + 0x1a4], eax
mov eax, dword [esi + 0x1d0]
movsd qword [esi + 0x19c], xmm0
movsd xmm0, qword [esi + 0x1c0]
movsd qword [esi + 0x178], xmm1
mov dword [esi + 0x180], eax
lea eax, [ecx + 0x1dc]
movsd qword [esi + 0x170], xmm0
movss xmm0, dword [esi + 0x58]
mov dword [esi + 0x2c0], eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x160], eax
movss dword [esi + 0x164], xmm0
movaps xmm0, xmmword [esi + 0x270]
mov eax, dword [esi + 0xc4]
movlps qword [esi + 0x168], xmm0
movaps xmm0, xmmword [esi + 0x100]
mov dword [esi + 0x154], 0
mov dword [esi + 0x150], 1
movsd qword [esi + 0x158], xmm0
movss xmm0, dword [esi + 0x260]
movss dword [esi + 0x1a8], xmm0
movsd xmm0, qword [esi + 0x2a8]
mov dword [esi + 0x1ac], eax
mov byte [esi + 0x1b0], dh
mov dword [esi + 0x18c], edi
lea edi, [ecx + 0xb0]
mov ecx, dword [ecx + 0x1dc]
movsd qword [esi + 0x184], xmm0
mov byte [esi + 0x1b1], dl
lea edx, [esi + 0x150]
call fcn.00512720
push edi
push dword [esi + 0x2c0]
push dword [ebp + 8]
mov eax, dword [ebp + 0xc]
call dword [eax + 0xc]
add esp, 0xc
mov eax, dword [ebx + 0x1dc]
mov dword [esi + 0x3c], eax
lea edi, [eax + 8]
mov eax, dword [eax + 8]
test al, 8
jne 0x4f6d44
mov ecx, eax
add ecx, 0x10
jb 0x4f6d44
lock cmpxchg dword [edi], ecx
jne 0x4f6d44
mov eax, dword [esi + 0x3c]
mov bl, 1
cmp dword [eax + 0x314], 0
je 0x4f6d5d
mov eax, 0xfffffff0
lock xadd dword [edi], eax
and eax, 0xfffffff2
cmp eax, 0x12
je 0x4f7676
test bl, bl
mov dword [esi + 0xa8], edi
je 0x4f5906
mov ecx, 8
xor eax, eax
lock cmpxchg dword [edi], ecx
jne 0x4f9b62
mov ebx, dword [esi + 0x3c]
mov dword [ebx + 0x4a0], 2
mov eax, dword [ebx + 0x480]
or eax, dword [ebx + 0x484]
jne 0x4f5873
cmp dword [ebx + 0x488], 0
je 0x4f58f5
mov dword [ebx + 0x484], 0
mov dword [ebx + 0x480], 0
mov dword [ebx + 0x488], 0
mov eax, dword [ebx + 0x498]
test eax, eax
je 0x4f58f5
mov ecx, dword [ebx + 0x490]
mov edx, dword [ebx + 0x494]
mov dword [esi + 0x1c4], edx
mov dword [esi + 0x1c0], ecx
mov dword [esi + 0x1cc], 0
mov dword [esi + 0x1c8], 0
mov dword [esi + 0x1d0], 0
lea edx, [esi + 0x1c0]
mov ecx, dword [ebx + 0x49c]
mov dword [esi + 0x348], 0xf
push edx
push eax
call dword [ecx + 0x14]
add esp, 8
mov edi, dword [esi + 0xa8]
xor ecx, ecx
mov eax, 8
lock cmpxchg dword [edi], ecx
jne 0x4f9b6e
mov ecx, 8
xor eax, eax
lock cmpxchg dword [edi], ecx
jne 0x4f7690
mov eax, dword [esi + 0x3c]
mov edi, dword [eax + 0x100]
mov ebx, dword [eax + 0x10c]
movdqa xmm0, xmmword [edi]
lea ecx, [edi + 0x10]
mov dword [esi + 0x10], ecx
pmovmskb eax, xmm0
not eax
nop word cs:[eax + eax]
sub ebx, 1
jb 0x4f59b4
mov ecx, dword [esi + 0x10]
test ax, ax
jne 0x4f5969
nop dword [eax]
movdqa xmm0, xmmword [ecx]
add edi, 0xfffffe80
add ecx, 0x10
pmovmskb eax, xmm0
cmp ax, 0xffff
je 0x4f5950
not eax
test edi, edi
mov dword [esi + 0x10], ecx
je 0x4f59b4
tzcnt ecx, eax
neg ecx
lea ecx, [ecx + ecx*2]
lea edx, [edi + ecx*8 - 8]
test edx, edx
je 0x4f59b4
lea edx, [eax - 1]
lea ecx, [edi + ecx*8]
and edx, eax
mov dword [esi + 0x30], edx
mov edx, dword [ecx - 8]
mov ecx, dword [ecx - 4]
mov dword [esi + 0x348], 6
push edx
mov dword [esi + 0x40], edi
mov dword [esi + 4], ebx
call dword [ecx + 0x10]
mov ebx, dword [esi + 4]
mov edi, dword [esi + 0x40]
add esp, 4
mov eax, dword [esi + 0x30]
jmp 0x4f5940
mov eax, dword [esi + 0x3c]
movsd xmm0, qword [eax + 0x168]
lea ebx, [eax + 0x1a0]
movsd qword [esi + 0x1e8], xmm0
movsd xmm0, qword [eax + 0x160]
movsd qword [esi + 0x1e0], xmm0
movsd xmm0, qword [eax + 0x158]
movsd qword [esi + 0x1d8], xmm0
movsd xmm0, qword [eax + 0x150]
movsd qword [esi + 0x1d0], xmm0
movsd xmm0, qword [eax + 0x140]
movsd xmm1, qword [eax + 0x148]
movsd qword [esi + 0x1c8], xmm1
movsd qword [esi + 0x1c0], xmm0
movsd xmm0, qword [eax + 0x170]
movsd xmm1, qword [eax + 0x178]
movsd qword [eax + 0x140], xmm0
movsd qword [eax + 0x148], xmm1
movsd xmm0, qword [eax + 0x180]
movsd qword [eax + 0x150], xmm0
movsd xmm0, qword [eax + 0x188]
movsd qword [eax + 0x158], xmm0
movsd xmm0, qword [eax + 0x190]
movsd qword [eax + 0x160], xmm0
movsd xmm0, qword [eax + 0x198]
movsd qword [eax + 0x168], xmm0
movsd xmm0, qword [esi + 0x1c0]
movq xmm1, qword [esi + 0x1c8]
movsd qword [eax + 0x170], xmm0
movq qword [eax + 0x178], xmm1
movsd xmm0, qword [esi + 0x1d0]
movsd qword [eax + 0x180], xmm0
movsd xmm0, qword [esi + 0x1d8]
movsd qword [eax + 0x188], xmm0
movsd xmm0, qword [esi + 0x1e0]
movsd qword [eax + 0x190], xmm0
movq xmm0, qword [esi + 0x1e8]
movq qword [eax + 0x198], xmm0
cmp dword [eax + 0x17c], 0
je 0x4f5b37
mov edi, dword [eax + 0x174]
test edi, edi
je 0x4f5b0e
mov eax, dword [esi + 0x3c]
lea ecx, [edi + 0x11]
add eax, 0x170
push ecx
push 0xff
push dword [eax]
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esi + 0x3c]
add esp, 0xc
mov dword [eax + 0x17c], 0
lea eax, [edi + 1]
mov edx, dword [esi + 0x3c]
mov ecx, eax
and eax, 0xfffffff8
shr ecx, 3
sub eax, ecx
cmp edi, 8
cmovb eax, edi
mov dword [edx + 0x178], eax
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + 0x1d8]
mov ecx, dword [eax + 0x1d0]
mov dword [esi + 0x118], ebx
cmp edx, 0x15
mov dword [esi + 0x110], ecx
jae 0x4f5b8f
cmp edx, 1
jbe 0x4f6bb6
mov ecx, dword [esi + 0x110]
lea eax, [esi + 0x118]
mov dword [esi + 0x348], 6
mov dword [esi + 0x28c], ebx
push eax
push 1
call fcn.005324b0
mov ebx, dword [esi + 0x28c]
add esp, 8
jmp 0x4f6bb6
mov dword [esi + 0xb0], edx
mov dword [esi + 0x28c], ebx
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f5bbe
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa15c
mov dword [0x919820], eax
mov ecx, dword [esi + 0xb0]
shr ecx, 1
mov dword [esi + 0x2c8], ecx
shl ecx, 4
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov dword [esi + 0x290], eax
je 0x4fa15c
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f5c0a
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa182
mov dword [0x919820], eax
push 0x80
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4fa182
mov edi, eax
mov eax, dword [esi + 0x110]
xor ebx, ebx
mov dword [esi + 0x88], 0x10
lea ecx, [eax + 0x28]
lea edx, [eax + 8]
add eax, 0xfffffff8
mov dword [esi + 0x2e0], eax
xor eax, eax
mov dword [esi + 0x2c4], ecx
mov dword [esi + 0x2e4], edx
jmp 0x4f5c6b
mov ebx, dword [esi + 0xac]
mov eax, 1
mov edx, dword [esi + 0xb0]
sub edx, ebx
jbe 0x4f6b8f
mov dword [esi + 0x114], eax
mov eax, dword [esi + 0x110]
mov dword [esi + 0x70], ebx
shl ebx, 4
cmp edx, 2
mov dword [esi + 4], edx
mov dword [esi + 0x60], edi
mov dword [esi + 0x2c], ebx
lea eax, [eax + ebx]
mov dword [esi + 0xd0], eax
jae 0x4f5df0
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0x70]
mov ebx, eax
mov ebx, dword [esi + 0xb0]
mov edx, eax
sub edx, ecx
mov dword [esi + 0x10], edx
mov edx, eax
jb 0x4f9ee0
cmp edx, ebx
ja 0x4f9ee0
mov eax, ecx
jae 0x4f5e50
cmp dword [esi + 4], 0xa
jae 0x4f5e50
mov ecx, eax
add eax, 0xa
mov dword [esi + 0x348], 0xe
cmp eax, ebx
cmovae eax, ebx
mov dword [esi + 0xac], eax
sub eax, ecx
jb 0x4f9f6c
mov ebx, dword [esi + 4]
mov edx, eax
mov eax, 1
mov ecx, dword [esi + 0xd0]
mov dword [esi + 0xb8], edi
mov dword [esi + 0x10], edx
cmp ebx, 2
cmovb ebx, eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0xbc], eax
lea eax, [esi + 0x118]
push eax
push ebx
call fcn.005324b0
mov edi, dword [esi + 0x88]
add esp, 8
mov eax, dword [esi + 0x114]
mov edx, dword [esi + 0xac]
mov ecx, dword [esi + 0x70]
cmp eax, edi
mov dword [esi + 0xac], edx
jne 0x4f5e6c
lea eax, [edi + edi]
mov dword [esi + 0x40], eax
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f5d89
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4f9f18
mov dword [0x919820], eax
mov ecx, edi
shl ecx, 4
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4f9f18
mov ecx, edi
mov edi, eax
shl ecx, 3
push ecx
mov ebx, dword [esi + 0x60]
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push ebx
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0xac]
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x114]
jmp 0x4f5e6f
mov ebx, dword [eax + 0x14]
mov ecx, dword [esi + 0x118]
mov edx, dword [eax + 0x10]
mov dword [esi + 0x10], ebx
mov ebx, dword [eax + 0x18]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x40], edx
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov dword [esi + 0x30], ebx
push ebx
push dword [esi + 0x10]
call fcn.005320f0
add esp, 0x14
test al, al
je 0x4f69c0
cmp dword [esi + 4], 2
mov ecx, dword [esi + 0x70]
jne 0x4f69dc
mov edx, dword [esi + 0xb0]
lea eax, [ecx + 2]
mov dword [esi + 4], 2
jmp 0x4f6adb
mov ecx, eax
mov edi, dword [esi + 0x88]
mov eax, dword [esi + 0x114]
cmp eax, edi
mov dword [esi + 0xac], edx
je 0x4f5d60
mov edi, dword [esi + 0x60]
mov ebx, dword [esi + 0x10]
mov dword [edi + eax*8], ebx
mov dword [edi + eax*8 + 4], ecx
inc eax
mov ebx, edx
cmp eax, 2
jb 0x4f5c6b
mov edx, dword [esi + 0xb0]
mov dword [esi + 0x60], edi
jmp 0x4f5f03
mov ecx, edi
mov edx, ebx
mov eax, dword [esi + 0x60]
mov ebx, dword [esi + 0x1b8]
lea edi, [eax + ebx*8]
mov eax, dword [esi + 0x2c]
sub eax, ecx
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x2ec]
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x1bc]
add ecx, dword [esi + 0x2e8]
mov dword [eax + ebx*8 + 8], ecx
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0xe8]
mov dword [eax + ebx*8 + 0xc], ecx
not ebx
lea eax, [edi + 8]
add edx, ebx
shl edx, 3
push edx
push eax
push edi
mov edi, dword [esi + 0x60]
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esi + 0x114]
mov edx, dword [esi + 0xb0]
cmp eax, 1
jbe 0x4f5c60
mov ebx, eax
mov eax, dword [edi + eax*8 - 8]
mov ecx, dword [edi + ebx*8 - 4]
mov dword [esi + 0x1bc], ebx
add ecx, eax
cmp ecx, edx
je 0x4f5f60
mov edx, dword [edi + ebx*8 - 0x10]
cmp edx, eax
jbe 0x4f5f60
cmp ebx, 3
jb 0x4f6b5b
lea ecx, [ebx - 3]
mov dword [esi + 0x1b8], ecx
mov ecx, dword [edi + ebx*8 - 0x18]
lea edi, [edx + eax]
cmp ecx, edi
jbe 0x4f699e
cmp ebx, 4
jb 0x4f6b6b
mov edi, dword [esi + 0x60]
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
jbe 0x4f5f72
jmp 0x4f6b7e
cmp ebx, 3
jb 0x4f5f82
lea ecx, [ebx - 3]
mov dword [esi + 0x1b8], ecx
mov ecx, dword [edi + ebx*8 - 0x18]
cmp ecx, eax
mov ebx, dword [esi + 0x1bc]
mov ecx, dword [esi + 0x1b8]
jb 0x4f5f85
lea ecx, [ebx - 2]
cmp ebx, ecx
jbe 0x4f9d1a
mov edx, dword [esi + 0xb0]
lea eax, [ecx + 1]
cmp ebx, eax
jbe 0x4f9d7d
mov eax, dword [edi + ecx*8 + 4]
mov ebx, dword [edi + ecx*8 + 8]
mov edi, dword [edi + ecx*8 + 0xc]
mov dword [esi + 0xe8], eax
add edi, ebx
mov dword [esi + 0x2ec], ebx
cmp edi, dword [esi + 0xe8]
jb 0x4f9de0
cmp edi, edx
ja 0x4f9e19
mov eax, dword [esi + 0x60]
mov ebx, edi
mov dword [esi + 0x1b8], ecx
shl ebx, 4
add ebx, dword [esi + 0x110]
mov edx, dword [eax + ecx*8]
mov eax, dword [esi + 0xe8]
mov dword [esi + 0xd0], ebx
mov ecx, eax
add eax, edx
shl ecx, 4
sub edi, eax
mov eax, edx
shl edx, 4
add ecx, dword [esi + 0x110]
mov dword [esi + 0x2e8], eax
cmp edi, eax
mov eax, dword [esi + 0x1bc]
lea eax, [eax - 1]
lea ebx, [ecx + edx]
mov dword [esi + 0x260], ecx
mov dword [esi + 0x114], eax
jae 0x4f64e0
shl edi, 4
push edi
push ebx
mov dword [esi + 0x20], ebx
mov ebx, dword [esi + 0x290]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
mov eax, dword [esi + 0x118]
mov ebx, dword [esi + 0x20]
pcmpeqd xmm3, xmm3
mov dword [esi + 0x270], eax
jmp 0x4f60c9
neg cx
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x20]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x30]
mov eax, 0
sbb eax, eax
add cl, al
xor eax, eax
cmp cl, 0xff
sete al
xor ecx, ecx
cmp byte [esi + 0x100], dl
setb cl
cmovne eax, ecx
movzx ecx, al
shl ecx, 4
lea edi, [ecx + edi - 0x10]
sub ebx, ecx
test al, al
mov eax, edi
cmovne eax, ebx
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov eax, dword [esi + 0xd0]
movq qword [eax - 8], xmm1
movq qword [eax - 0x10], xmm0
add eax, 0xfffffff0
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x270]
cmp ebx, dword [esi + 0x260]
jbe 0x4f6990
cmp edi, dword [esi + 0x290]
jbe 0x4f6990
movzx edx, byte [edi - 8]
cmp dword [eax + 0xc], 0
mov byte [esi + 0x100], dl
je 0x4f64d0
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x2c], edi
movzx edi, dl
mov dword [esi + 0x20], ebx
mov ebx, 0x2df45158
mov dword [esi + 0xf0], 0
mov dword [esi + 0x8c], ecx
xor edi, ecx
mov ecx, eax
mov eax, edi
mov ecx, dword [ecx + 0x14]
mul ebx
mov dword [esi + 0x10], eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
mov edx, 0xb36a80d2
mov dword [esi + 0x40], eax
imul eax, ecx, 0x2df45158
bswap ecx
mov dword [esi + 0xc], eax
mov eax, ecx
mov dword [esi + 0xe4], ecx
mul edx
mov ebx, eax
imul eax, ecx, 0xa7ae0bd2
mov dword [esi + 0xb4], eax
add edx, eax
imul eax, edi, 0xb36a80d2
mov edi, dword [esi + 0x40]
bswap ebx
add eax, edx
mov edx, dword [esi + 0x2c]
bswap eax
add edi, dword [esi + 0xc]
mov ecx, dword [edx - 0xc]
xor ebx, ecx
mov dword [esi + 0x30], ecx
mov ecx, dword [edx - 0x10]
xor ebx, edi
mov edi, dword [esi + 0x10]
mov dword [esi + 0x24], ecx
xor edi, ecx
mov ecx, 0x2df45158
xor edi, eax
mov eax, edi
mul ecx
mov ecx, edi
mov dword [esi + 0x10], eax
imul eax, edi, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, ebx, 0x2df45158
bswap ebx
imul ecx, ecx, 0xb36a80d2
add edx, eax
mov eax, ebx
mov dword [esi + 0x40], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
imul eax, ebx, 0xa7ae0bd2
add eax, edx
bswap edi
add ecx, eax
mov eax, dword [esi + 0x270]
xor edi, dword [esi + 0x40]
bswap ecx
xor ecx, dword [esi + 0x10]
mov ebx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov edx, ecx
mov dword [esi + 0x70], eax
bswap eax
mov dword [esi + 0x90], ebx
bswap ebx
not dword [esi + 0x70]
imul edx, eax
mov dword [esi + 0xc0], eax
mov eax, ecx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x40], edx
mul ebx
add edx, dword [esi + 0x40]
mov dword [esi + 0x10], eax
mov eax, edi
bswap edi
imul eax, ebx
mov ebx, edi
add eax, edx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x90]
not eax
mov dword [esi + 0x90], eax
imul ebx, eax
mov eax, edi
mov edi, ecx
mul dword [esi + 0x70]
bswap edi
imul edi, dword [esi + 0x70]
add edx, ebx
bswap eax
movzx ebx, byte [esi + 0x100]
add edi, edx
xor eax, dword [esi + 0x40]
bswap edi
xor edi, dword [esi + 0x10]
test cl, 0x20
mov edx, eax
cmovne edx, edi
cmovne edi, eax
shld edi, edx, cl
mov ecx, dword [esi + 0x270]
mov eax, edi
shr eax, 0x19
movd xmm0, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea edx, [eax - 0x10]
mov dword [esi + 0x58], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0x40], edx
and edi, ecx
movdqa xmm2, xmm0
movdqu xmm1, xmmword [eax + edi]
pcmpeqb xmm2, xmm1
pmovmskb ecx, xmm2
nop dword [eax + eax]
test cx, cx
setne al
mov dword [esi + 4], eax
je 0x4f62e0
tzcnt eax, ecx
mov edx, dword [esi + 0x40]
add eax, edi
and eax, dword [esi + 0x10]
shl eax, 4
sub edx, eax
lea eax, [ecx - 1]
and eax, ecx
cmp bl, byte [edx + 8]
mov ecx, eax
jne 0x4f62a0
mov eax, dword [edx]
mov edx, dword [edx + 4]
xor eax, dword [esi + 0x24]
xor edx, dword [esi + 0x30]
or edx, eax
jne 0x4f62a0
jmp 0x4f6310
pcmpeqb xmm1, xmm3
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x4f6310
mov eax, dword [esi + 0xf0]
mov ecx, dword [esi + 0x10]
lea edi, [edi + eax + 0x10]
add eax, 0x10
mov dword [esi + 0xf0], eax
mov eax, dword [esi + 0x58]
jmp 0x4f6285
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x8c]
mov ecx, 0x2df45158
movzx eax, byte [eax - 8]
xor edi, eax
mov dword [esi + 0x30], eax
mov eax, edi
imul ebx, edi, 0x2d7f954c
bswap edi
mul ecx
mov ecx, 0xb36a80d2
mov dword [esi + 0xf0], eax
mov eax, dword [esi + 0xe4]
add ebx, edx
add ebx, dword [esi + 0xc]
mul ecx
mov ecx, eax
imul eax, edi, 0xb36a80d2
add edx, dword [esi + 0xb4]
mov edi, dword [esi + 0x20]
bswap ecx
add eax, edx
mov edx, dword [edi - 0xc]
bswap eax
xor ecx, edx
mov dword [esi + 0x24], edx
mov edx, dword [edi - 0x10]
mov edi, dword [esi + 0xf0]
xor ecx, ebx
xor edi, edx
mov dword [esi + 0xc], edx
mov edx, 0x2df45158
xor edi, eax
mov eax, edi
mov ebx, edi
mul edx
bswap ebx
mov dword [esi + 0xf0], eax
imul eax, edi, 0x2d7f954c
add eax, edx
imul edx, ecx, 0x2df45158
bswap ecx
add edx, eax
mov eax, ecx
imul ecx, ecx, 0xa7ae0bd2
mov dword [esi + 0x8c], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
imul eax, ebx, 0xb36a80d2
add ecx, edx
mov ebx, dword [esi + 0x64]
add eax, ecx
bswap edi
mov ecx, dword [esi + 0xc0]
bswap eax
xor edi, dword [esi + 0x8c]
xor eax, dword [esi + 0xf0]
mov dword [esi + 0xf0], eax
imul ecx, eax
mul ebx
imul ebx, edi
add edx, ecx
mov dword [esi + 0x8c], eax
mov eax, edi
mov ecx, dword [esi + 0x70]
mov edi, dword [esi + 0x90]
mov dword [esi + 0x70], 0
bswap eax
add ebx, edx
imul edi, eax
mul ecx
add edx, edi
mov edi, dword [esi + 0xf0]
bswap eax
xor eax, ebx
bswap edi
imul edi, ecx
mov ecx, dword [esi + 0xf0]
add edi, edx
mov edx, eax
bswap edi
xor edi, dword [esi + 0x8c]
test cl, 0x20
cmovne edx, edi
cmovne edi, eax
shld edi, edx, cl
mov eax, edi
shr eax, 0x19
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
and edi, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
movdqa xmm2, xmm0
movdqu xmm1, xmmword [eax + edi]
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
nop dword [eax]
mov ecx, edx
test dx, dx
je 0x4f64b0
tzcnt edx, ecx
mov eax, dword [esi + 0x40]
mov ebx, dword [esi + 0x30]
add edx, edi
and edx, dword [esi + 0x10]
shl edx, 4
sub eax, edx
lea edx, [ecx - 1]
and edx, ecx
cmp bl, byte [eax + 8]
jne 0x4f6470
mov ebx, dword [eax]
mov eax, dword [eax + 4]
xor ebx, dword [esi + 0xc]
xor eax, dword [esi + 0x24]
or eax, ebx
jne 0x4f6470
jmp 0x4f6060
pcmpeqb xmm1, xmm3
pmovmskb eax, xmm1
test eax, eax
jne 0x4f6060
mov eax, dword [esi + 0x70]
lea edi, [edi + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x70], eax
jmp 0x4f6452
movzx edx, byte [ebx - 8]
xor ecx, ecx
xor eax, eax
jmp 0x4f6076
mov eax, edx
mov edi, edx
push eax
push ecx
push dword [esi + 0x290]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esi + 0x260]
add esp, 0xc
mov edx, dword [esi + 0x290]
mov eax, dword [esi + 0x118]
pcmpeqd xmm3, xmm3
add edi, edx
mov dword [esi + 0xf0], eax
mov eax, ebx
mov ebx, ecx
mov dword [esi + 0x2c], edi
mov edi, edx
mov ecx, eax
jmp 0x4f658b
neg cx
mov ebx, dword [esi + 0x260]
mov edi, dword [esi + 0x90]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x30]
mov eax, 0
sbb eax, eax
add cl, al
xor eax, eax
cmp cl, 0xff
sete al
xor ecx, ecx
cmp byte [esi + 0x100], dl
mov edx, edi
setb cl
cmovne eax, ecx
mov ecx, edi
mov edi, dword [esi + 0x20]
test al, al
cmovne ecx, edi
movq xmm0, qword [ecx]
movq xmm1, qword [ecx + 8]
movzx ecx, al
xor al, 1
movzx eax, al
shl ecx, 4
shl eax, 4
add edi, ecx
add edx, eax
mov ecx, edi
movq qword [ebx + 8], xmm1
movq qword [ebx], xmm0
add ebx, 0x10
mov edi, edx
cmp edi, dword [esi + 0x2c]
jae 0x4f5e90
cmp ecx, dword [esi + 0xd0]
jae 0x4f5e90
mov eax, dword [esi + 0xf0]
movzx edx, byte [ecx + 8]
mov dword [esi + 0x20], ecx
cmp dword [eax + 0xc], 0
mov byte [esi + 0x100], dl
je 0x4f6980
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x90], edi
movzx edi, dl
mov dword [esi + 0x260], ebx
mov ebx, eax
mov dword [esi + 0x64], 0
xor edi, ecx
mov dword [esi + 0xc0], ecx
mov ecx, 0x2df45158
mov eax, edi
mul ecx
mov ecx, dword [ebx + 0x14]
mov dword [esi + 0x10], eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
mov edx, 0xb36a80d2
mov dword [esi + 0x40], eax
imul eax, ecx, 0x2df45158
bswap ecx
mov dword [esi + 0xc], eax
mov eax, ecx
mov dword [esi + 0xb4], ecx
mul edx
mov ebx, eax
imul eax, ecx, 0xa7ae0bd2
mov dword [esi + 0xec], eax
add edx, eax
imul eax, edi, 0xb36a80d2
mov edi, dword [esi + 0x40]
bswap ebx
add eax, edx
mov edx, dword [esi + 0x20]
bswap eax
add edi, dword [esi + 0xc]
mov ecx, dword [edx + 4]
xor ebx, ecx
mov dword [esi + 0x30], ecx
mov ecx, dword [edx]
xor ebx, edi
mov edi, dword [esi + 0x10]
mov dword [esi + 0x24], ecx
xor edi, ecx
mov ecx, 0x2df45158
xor edi, eax
mov eax, edi
mul ecx
mov ecx, edi
mov dword [esi + 0x10], eax
imul eax, edi, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, ebx, 0x2df45158
bswap ebx
imul ecx, ecx, 0xb36a80d2
add edx, eax
mov eax, ebx
mov dword [esi + 0x40], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
imul eax, ebx, 0xa7ae0bd2
add eax, edx
bswap edi
add ecx, eax
mov eax, dword [esi + 0xf0]
xor edi, dword [esi + 0x40]
bswap ecx
xor ecx, dword [esi + 0x10]
mov ebx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov edx, ecx
mov dword [esi + 0x70], eax
bswap eax
mov dword [esi + 0x58], ebx
bswap ebx
not dword [esi + 0x70]
imul edx, eax
mov dword [esi + 0xe4], eax
mov eax, ecx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x40], edx
mul ebx
add edx, dword [esi + 0x40]
mov dword [esi + 0x10], eax
mov eax, edi
bswap edi
imul eax, ebx
mov ebx, edi
add eax, edx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x58]
not eax
mov dword [esi + 0x58], eax
imul ebx, eax
mov eax, edi
mov edi, ecx
mul dword [esi + 0x70]
bswap edi
imul edi, dword [esi + 0x70]
add edx, ebx
bswap eax
movzx ebx, byte [esi + 0x100]
add edi, edx
xor eax, dword [esi + 0x40]
bswap edi
xor edi, dword [esi + 0x10]
test cl, 0x20
mov edx, eax
cmovne edx, edi
cmovne edi, eax
shld edi, edx, cl
mov ecx, dword [esi + 0xf0]
mov eax, edi
shr eax, 0x19
movd xmm0, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea edx, [eax - 0x10]
mov dword [esi + 0x270], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0x40], edx
and edi, ecx
movdqa xmm2, xmm0
movdqu xmm1, xmmword [eax + edi]
pcmpeqb xmm2, xmm1
pmovmskb ecx, xmm2
nop
test cx, cx
setne al
mov dword [esi + 4], eax
je 0x4f67a0
tzcnt eax, ecx
mov edx, dword [esi + 0x40]
add eax, edi
and eax, dword [esi + 0x10]
shl eax, 4
sub edx, eax
lea eax, [ecx - 1]
and eax, ecx
cmp bl, byte [edx + 8]
mov ecx, eax
jne 0x4f6760
mov eax, dword [edx]
mov edx, dword [edx + 4]
xor eax, dword [esi + 0x24]
xor edx, dword [esi + 0x30]
or edx, eax
jne 0x4f6760
jmp 0x4f67d0
pcmpeqb xmm1, xmm3
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x4f67d0
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x10]
lea edi, [edi + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x270]
jmp 0x4f674c
mov eax, dword [esi + 0x90]
mov edi, dword [esi + 0xc0]
mov ecx, 0x2df45158
movzx eax, byte [eax + 8]
xor edi, eax
mov dword [esi + 0x30], eax
mov eax, edi
imul ebx, edi, 0x2d7f954c
bswap edi
mul ecx
mov ecx, 0xb36a80d2
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0xb4]
add ebx, edx
add ebx, dword [esi + 0xc]
mul ecx
mov ecx, eax
imul eax, edi, 0xb36a80d2
add edx, dword [esi + 0xec]
mov edi, dword [esi + 0x90]
bswap ecx
add eax, edx
mov edx, dword [edi + 4]
bswap eax
xor ecx, edx
mov dword [esi + 0x24], edx
mov edx, dword [edi]
mov edi, dword [esi + 0x64]
xor ecx, ebx
xor edi, edx
mov dword [esi + 0xc], edx
mov edx, 0x2df45158
xor edi, eax
mov eax, edi
mov ebx, edi
mul edx
bswap ebx
mov dword [esi + 0x64], eax
imul eax, edi, 0x2d7f954c
add eax, edx
imul edx, ecx, 0x2df45158
bswap ecx
add edx, eax
mov eax, ecx
imul ecx, ecx, 0xa7ae0bd2
mov dword [esi + 0xc0], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
imul eax, ebx, 0xb36a80d2
add ecx, edx
mov ebx, dword [esi + 0x8c]
add eax, ecx
bswap edi
mov ecx, dword [esi + 0xe4]
bswap eax
xor edi, dword [esi + 0xc0]
xor eax, dword [esi + 0x64]
mov dword [esi + 0x64], eax
imul ecx, eax
mul ebx
imul ebx, edi
add edx, ecx
mov dword [esi + 0xc0], eax
mov eax, edi
mov ecx, dword [esi + 0x70]
mov edi, dword [esi + 0x58]
mov dword [esi + 0x70], 0
bswap eax
add ebx, edx
imul edi, eax
mul ecx
add edx, edi
mov edi, dword [esi + 0x64]
bswap eax
xor eax, ebx
bswap edi
imul edi, ecx
mov ecx, dword [esi + 0x64]
add edi, edx
mov edx, eax
bswap edi
xor edi, dword [esi + 0xc0]
test cl, 0x20
cmovne edx, edi
cmovne edi, eax
shld edi, edx, cl
mov eax, edi
shr eax, 0x19
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
and edi, dword [esi + 0x10]
mov eax, dword [esi + 0x270]
movdqa xmm2, xmm0
movdqu xmm1, xmmword [eax + edi]
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
nop dword [eax]
mov ecx, edx
test dx, dx
je 0x4f6960
tzcnt edx, ecx
mov eax, dword [esi + 0x40]
mov ebx, dword [esi + 0x30]
add edx, edi
and edx, dword [esi + 0x10]
shl edx, 4
sub eax, edx
lea edx, [ecx - 1]
and edx, ecx
cmp bl, byte [eax + 8]
jne 0x4f6920
mov ebx, dword [eax]
mov eax, dword [eax + 4]
xor ebx, dword [esi + 0xc]
xor eax, dword [esi + 0x24]
or eax, ebx
jne 0x4f6920
jmp 0x4f6520
pcmpeqb xmm1, xmm3
pmovmskb eax, xmm1
test eax, eax
jne 0x4f6520
mov eax, dword [esi + 0x70]
lea edi, [edi + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x70], eax
jmp 0x4f6902
movzx edx, byte [edi + 8]
xor ecx, ecx
xor eax, eax
jmp 0x4f653c
mov ecx, dword [esi + 0x290]
mov dword [esi + 0x2c], edi
jmp 0x4f5e92
mov edi, dword [esi + 0x60]
cmp ecx, eax
mov ebx, dword [esi + 0x1bc]
mov ecx, dword [esi + 0x1b8]
jae 0x4f5f82
jmp 0x4f5f85
cmp dword [esi + 4], 2
mov ecx, dword [esi + 0x70]
jne 0x4f6a50
lea eax, [ecx + 2]
mov dword [esi + 4], 2
jmp 0x4f5caf
mov byte [esi + 0x100], al
mov eax, dword [esi + 0x2c4]
mov ecx, dword [esi + 0x2c]
mov edi, 2
lea ebx, [eax + ecx]
mov ecx, dword [esi + 0x30]
nop word cs:[eax + eax]
mov eax, dword [esi + 0x10]
mov edx, dword [ebx - 8]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x40], edx
mov dword [esi + 0x20], eax
mov eax, dword [ebx - 4]
mov dword [esi + 0x10], eax
mov eax, dword [ebx]
mov dword [esi + 0x30], eax
movzx eax, cl
mov ecx, dword [esi + 0x24]
push eax
push dword [esi + 0xc]
push dword [esi + 0x20]
push dword [esi + 0x30]
push dword [esi + 0x10]
call fcn.005320f0
add esp, 0x14
test al, al
je 0x4f6abc
mov eax, dword [esi + 4]
inc edi
add ebx, 0x10
mov ecx, dword [esi + 0x30]
cmp eax, edi
jne 0x4f6a00
jmp 0x4f6aba
mov byte [esi + 0x100], al
mov eax, dword [esi + 0x2c4]
mov ecx, dword [esi + 0x2c]
mov edi, 2
lea ebx, [eax + ecx]
mov ecx, dword [esi + 0x30]
nop word [eax + eax]
mov eax, dword [esi + 0x10]
mov edx, dword [ebx - 8]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x40], edx
mov dword [esi + 0x20], eax
mov eax, dword [ebx - 4]
mov dword [esi + 0x10], eax
mov eax, dword [ebx]
mov dword [esi + 0x30], eax
movzx eax, cl
mov ecx, dword [esi + 0x24]
push eax
push dword [esi + 0xc]
push dword [esi + 0x20]
push dword [esi + 0x30]
push dword [esi + 0x10]
call fcn.005320f0
add esp, 0x14
test al, al
jne 0x4f6abc
mov eax, dword [esi + 4]
inc edi
add ebx, 0x10
mov ecx, dword [esi + 0x30]
cmp eax, edi
jne 0x4f6a70
mov edi, eax
mov ecx, dword [esi + 0x70]
cmp byte [esi + 0x100], 0
mov dword [esi + 4], edi
mov edx, dword [esi + 0xb0]
lea eax, [edi + ecx]
mov edi, dword [esi + 0x60]
je 0x4f5caf
cmp eax, ecx
jb 0x4f9fc9
cmp eax, edx
ja 0x4f9ffb
mov ebx, dword [esi + 4]
cmp ebx, 2
jb 0x4f5caf
mov edi, dword [esi + 0x2c]
add ecx, ebx
mov dword [esi + 0xac], eax
mov eax, ebx
shl ecx, 4
shr eax, 1
add ecx, dword [esi + 0x2e0]
add edi, dword [esi + 0x2e4]
nop word cs:[eax + eax]
nop
mov edx, dword [edi - 8]
movq xmm0, qword [ecx - 8]
mov bh, byte [ecx]
mov bl, byte [edi]
mov dword [esi + 0x10], edx
mov edx, dword [edi - 4]
movq qword [edi - 8], xmm0
mov byte [edi], bh
add edi, 0x10
mov dword [ecx - 4], edx
mov edx, dword [esi + 0x10]
mov dword [ecx - 8], edx
mov byte [ecx], bl
add ecx, 0xfffffff0
dec eax
jne 0x4f6b20
mov edi, dword [esi + 0x60]
mov eax, dword [esi + 0xac]
jmp 0x4f5cac
mov ebx, dword [esi + 0xac]
mov eax, 2
jmp 0x4f5c6b
mov ebx, dword [esi + 0xac]
mov edi, dword [esi + 0x60]
mov eax, 3
jmp 0x4f5c6b
mov eax, dword [esi + 0x1bc]
mov ebx, dword [esi + 0xac]
jmp 0x4f5c6b
push edi
push 0
push dword [0x919820]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
call edi
push dword [esi + 0x290]
push 0
push dword [0x919820]
call edi
mov ebx, dword [esi + 0x28c]
mov eax, dword [esi + 0x3c]
cmp dword [eax + 0x1ac], 0
je 0x4f6c0b
mov edi, dword [eax + 0x1a4]
test edi, edi
je 0x4f6be2
lea eax, [edi + 0x11]
push eax
push 0xff
push dword [ebx]
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esi + 0x3c]
add esp, 0xc
mov dword [eax + 0x1ac], 0
lea eax, [edi + 1]
mov edx, dword [esi + 0x3c]
mov ecx, eax
and eax, 0xfffffff8
shr ecx, 3
sub eax, ecx
cmp edi, 8
cmovb eax, edi
mov dword [edx + 0x1a8], eax
mov eax, dword [esi + 0x3c]
mov ecx, eax
mov eax, dword [eax + 0x30]
or eax, dword [ecx + 0x34]
je 0x4f6ddc
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + 0x40]
or eax, dword [ecx + 0x44]
je 0x4f6ddc
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + 0x38]
mov eax, dword [ecx + 0x48]
mov edi, dword [ecx + 0x3c]
mov ecx, dword [ecx + 0x4c]
xor eax, edx
xor ecx, edi
mov dword [esi + 0x10], edx
mov dword [esi + 4], edi
or ecx, eax
jne 0x4f6ddc
mov eax, dword [esi + 0x3c]
cmp dword [eax + 0x3ec], 0
je 0x4f6dcb
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x3c]
pcmpeqd xmm1, xmm1
mov dword [esi + 0x24], 0
mov ebx, ecx
mov edx, dword [eax + 0x3e0]
mov edi, dword [eax + 0x3e4]
shr ebx, 0x19
movd xmm0, ebx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea ebx, [edx - 0x18]
mov dword [esi + 0x30], edi
pshufd xmm0, xmm0, 0
and ecx, edi
movdqa xmm3, xmm0
movdqu xmm2, xmmword [edx + ecx]
mov dword [esi + 0x40], ecx
pcmpeqb xmm3, xmm2
pmovmskb ecx, xmm3
nop dword [eax]
test cx, cx
je 0x4f6ce5
mov eax, edx
lea edx, [ecx - 1]
and edx, ecx
tzcnt ecx, ecx
add ecx, dword [esi + 0x40]
and ecx, dword [esi + 0x30]
neg ecx
lea ecx, [ecx + ecx*2]
mov edi, dword [ebx + ecx*8 + 4]
mov ecx, dword [ebx + ecx*8]
xor edi, dword [esi + 4]
xor ecx, dword [esi + 0x10]
or ecx, edi
mov ecx, edx
mov edx, eax
jne 0x4f6cb0
jmp 0x4f6ddc
mov edi, dword [esi + 0x30]
pcmpeqb xmm2, xmm1
pmovmskb ecx, xmm2
test ecx, ecx
jne 0x4f6dcb
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x40]
lea ecx, [ecx + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x24], eax
jmp 0x4f6c93
mov eax, ebx
test eax, eax
jne 0x4f54ad
mov edx, dword [esi + 0x20]
mov ecx, ebx
mov dword [esi + 0x348], 3
call fcn.00709d20
jmp 0x4fa439
lea ecx, [edi + 8]
mov dword [esi + 0x348], 0xffffffff
call fcn.00719890
jmp 0x4f51cd
mov ecx, edi
call fcn.00719890
mov eax, dword [esi + 0x3c]
mov bl, 1
cmp dword [eax + 0x314], 0
jne 0x4f5817
movss xmm1, dword [eax + 0x2c8]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
jne 0x4f5817
jp 0x4f5817
movss xmm1, dword [eax + 0x2cc]
ucomiss xmm1, xmm0
jne 0x4f5817
jp 0x4f5817
movss xmm1, dword [eax + 0x340]
ucomiss xmm1, xmm0
jne 0x4f5817
jp 0x4f5817
movss xmm1, dword [eax + 0x344]
ucomiss xmm1, xmm0
jne 0x4f5817
jp 0x4f5817
cmp dword [eax + 0x368], 0
setne bl
jmp 0x4f5817
mov eax, dword [esi + 0x3c]
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + 0x30c]
mov ecx, dword [ecx + 0x314]
shl ecx, 3
mov edi, eax
lea edx, [ecx + ecx*2]
nop word cs:[eax + eax]
nop dword [eax]
test edx, edx
je 0x4f6e11
add edx, 0xffffffe8
cmp byte [edi], 1
lea edi, [edi + 0x18]
jne 0x4f6e00
jmp 0x4f6e2f
lea ecx, [ecx + ecx*2]
nop word cs:[eax + eax]
nop
test ecx, ecx
je 0x4f6e5a
add ecx, 0xffffffe8
cmp byte [eax], 2
lea eax, [eax + 0x18]
jne 0x4f6e20
mov eax, dword [esi + 0x3c]
mov dword [eax + 0x84], 0
mov dword [eax + 0x80], 0
mov dword [eax + 0x94], 0
mov dword [eax + 0x90], 0
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + 0x658]
test edx, edx
je 0x4fa136
mov bl, 1
xor eax, eax
lea ecx, [edx + 8]
lock cmpxchg byte [edx + 8], bl
mov dword [esi + 0x90], ecx
je 0x4f6e9a
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x348], 6
mov dword [esi + 0x10], edx
call fcn.0071aab0
mov edx, dword [esi + 0x10]
mov ebx, dword [edx + 0xa0]
xor eax, eax
mov dl, 1
lock cmpxchg byte [ebx + 8], dl
lea ecx, [ebx + 8]
mov dword [esi + 4], ebx
mov dword [esi + 0x58], ecx
je 0x4f6ec9
mov dword [esi + 0x348], 0xa
call fcn.0071aab0
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 0x58]
movq xmm2, qword [ebx + 0x2c]
mov edi, dword [ebx + 0x34]
mov edx, dword [ebx + 0x38]
pcmpeqd xmm1, xmm1
mov dword [ebx + 0x2c], 0xffffffff
mov dword [ebx + 0x30], 0xffffffff
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x38], 0
movdqa xmm0, xmm2
punpckldq xmm0, xmm2
pcmpeqd xmm1, xmm0
movmskpd eax, xmm1
cmp al, 3
jne 0x4f6f33
mov eax, edi
movdqa xmm3, xmm2
or eax, edx
jne 0x4f7004
mov dword [esi + 0x238], 2
xor edx, edx
mov al, 1
lock cmpxchg byte [ecx], dl
jne 0x4f72ad
jmp 0x4f72bc
pshufd xmm0, xmm2, 0x50
pxor xmm1, xmm1
movdqa xmm3, xmm2
pcmpeqd xmm1, xmm0
movmskpd eax, xmm1
test al, 1
je 0x4f7004
shr al, 1
je 0x4f7004
cmp edi, 0xffffffff
jne 0x4f7004
cmp edx, 0xffffffff
jne 0x4f7004
mov edi, dword [ebx + 0x14]
movq xmm0, qword [ebx + 0x18]
mov ecx, dword [ebx + 0xc]
test edi, edi
movdqa xmmword [esi + 0x10], xmm0
je 0x4f70b8
xor ebx, ebx
cmp edi, 0x20000000
setb al
jae 0x4fa3dd
mov bl, al
lea edx, [edi*4]
shl ebx, 2
test edx, edx
js 0x4fa3ee
mov dword [esi + 4], ebx
je 0x4f6fe5
mov dword [esi + 0x40], ecx
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f6fd2
mov ebx, edx
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov edx, ebx
test eax, eax
je 0x4f6fed
mov dword [0x919820], eax
push edx
push 0
push eax
mov ebx, edx
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [esi + 0x40]
mov edx, ebx
mov ebx, eax
test ebx, ebx
jne 0x4f70c4
mov ecx, dword [esi + 4]
mov dword [esi + 0x348], 0xb
call fcn.00709d20
jmp 0x4fa439
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x24], edi
cmp edi, eax
mov dword [esi + 0x20], eax
ja 0x4fa1d0
cmp edx, dword [ebx + 0x1c]
ja 0x4fa1f6
mov ecx, dword [esi + 0x24]
movd ebx, xmm3
mov edi, edx
pshufd xmm0, xmm3, 0x55
movdqa xmmword [esi + 0x260], xmm3
mov eax, ebx
movd eax, xmm0
mov dword [esi + 0x70], ebx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
sub ecx, ebx
mov ebx, edi
sub ebx, eax
mov dword [esi + 0x40], ecx
mov eax, ebx
imul eax, ecx
test eax, eax
mov dword [esi + 0x270], eax
je 0x4f70a4
mov dword [esi + 0x30], ebx
xor ebx, ebx
cmp eax, 0x20000000
mov edx, eax
setb al
jae 0x4fa311
mov bl, al
lea edx, [edx*4]
shl ebx, 2
test edx, edx
mov dword [esi + 0xd0], edx
js 0x4fa325
mov dword [esi + 0x2c], ebx
je 0x4f70b1
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
je 0x4f7107
mov ebx, dword [esi + 0x30]
jmp 0x4f711d
mov ecx, dword [esi + 0x40]
mov eax, 4
jmp 0x4f7137
mov eax, ebx
mov ebx, dword [esi + 0x30]
jmp 0x4f712c
lea edx, [edi*4]
mov ebx, 4
push edx
push ecx
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movdqa xmm0, xmmword [esi + 0x10]
mov dword [esi + 0x238], 1
mov dword [esi + 0x23c], ebx
mov dword [esi + 0x240], edi
mov dword [esi + 0x244], edi
movq qword [esi + 0x248], xmm0
mov dword [esi + 0x250], 0
jmp 0x4f7297
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov ebx, dword [esi + 0x30]
test eax, eax
je 0x4fa250
mov dword [0x919820], eax
push dword [esi + 0xd0]
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [esi + 0x40]
test eax, eax
je 0x4fa250
mov dword [esi + 0x30], eax
mov dword [esi + 0x118], eax
mov eax, dword [esi + 0x270]
mov edi, dword [esi + 0x10]
movd xmm1, ecx
movd xmm0, ebx
lea ecx, [ecx*4]
xor ebx, ebx
punpckldq xmm1, xmm0
mov dword [esi + 0x100], ecx
movdqa xmmword [esi + 0xf0], xmm1
mov dword [esi + 0x11c], eax
mov eax, dword [esi + 4]
mov dword [esi + 0x120], 0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov dword [esi + 0x2c], edx
mov dword [esi + 0xd0], eax
jmp 0x4f71c1
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 4]
inc edi
mov dword [esi + 0x30], ecx
lea ecx, [ecx + ebx*4]
lea eax, [eax + edx*4]
push dword [esi + 0x100]
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x40]
add ebx, ecx
mov dword [esi + 0x120], ebx
cmp edi, dword [esi + 0xc]
jae 0x4f722d
mov dword [esi + 0x10], edi
imul edi, dword [esi + 0x20]
mov eax, dword [esi + 0x70]
lea ecx, [edi + eax]
add edi, dword [esi + 0x24]
cmp edi, ecx
jb 0x4f9e9e
cmp edi, dword [esi + 0xd0]
ja 0x4f9ebc
mov eax, dword [esi + 0x11c]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x40]
sub eax, ebx
cmp eax, ecx
jae 0x4f7190
mov eax, ecx
mov dword [esi + 0x348], 0xc
lea ecx, [esi + 0x118]
mov edx, ebx
push eax
call fcn.0071bb70
add esp, 4
mov ecx, dword [esi + 0x118]
mov ebx, dword [esi + 0x120]
mov edi, dword [esi + 0x10]
jmp 0x4f7196
mov eax, dword [esi + 0x270]
mov dword [esi + 0x2a8], ebx
cmp ebx, eax
mov dword [esi + 0x238], eax
jne 0x4fa21c
movq xmm0, qword [esi + 0x118]
mov eax, dword [esi + 0x120]
movdqa xmm2, xmmword [esi + 0xf0]
movapd xmm1, xmmword [esi + 0x260]
movq qword [esi + 0x23c], xmm0
mov dword [esi + 0x244], eax
mov dword [esi + 0x238], 1
movq qword [esi + 0x248], xmm2
mov dword [esi + 0x250], 1
movlpd qword [esi + 0x254], xmm1
mov ecx, dword [esi + 0x58]
mov word [esi + 0x25c], 0x101
xor edx, edx
mov al, 1
lock cmpxchg byte [ecx], dl
je 0x4f72bc
mov dword [esi + 0x348], 0xa
call fcn.0071ade0
mov edx, dword [esi + 0x90]
mov al, 1
xor ecx, ecx
mov dword [esi + 0x10], eax
mov al, 1
lock cmpxchg byte [edx], cl
je 0x4f72e2
mov ecx, edx
mov dword [esi + 0x348], 6
call fcn.0071ade0
mov edx, dword [esi + 0x238]
mov eax, dword [esi + 0x3c]
cmp edx, 2
mov dword [esi + 0x30], edx
je 0x4f77ce
movsd xmm2, qword [esi + 0x250]
movsd xmm1, qword [esi + 0x248]
movq xmm0, qword [esi + 0x258]
mov edx, 8
movsd qword [esi + 0x130], xmm2
movsd qword [esi + 0x128], xmm1
movq xmm2, qword [esi + 0x238]
movq xmm1, qword [esi + 0x240]
movq qword [esi + 0x138], xmm0
movq qword [esi + 0x120], xmm1
movq qword [esi + 0x118], xmm2
mov edi, dword [eax + 0x654]
xor eax, eax
lock cmpxchg dword [edi + 8], edx
lea ecx, [edi + 8]
mov edx, edi
mov dword [esi + 4], edi
mov dword [esi + 0xc], ecx
je 0x4f737c
mov byte [esi + 0x69], 1
mov dword [esi + 0x348], 8
call fcn.007188f0
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x13c]
movq xmm0, qword [esi + 0x134]
mov ecx, dword [esi + 0x11c]
mov eax, dword [esi + 0x118]
movq xmm4, qword [esi + 0x120]
movsd xmm5, qword [esi + 0x128]
mov dword [esi + 0x2b0], edi
movq qword [esi + 0x2a8], xmm0
mov dword [esi + 0x70], ecx
mov ecx, dword [esi + 0x130]
mov dword [esi + 0x20], eax
cmp dword [edx + 0x1c], 0
mov dword [esi + 0x24], ecx
je 0x4f75ae
mov eax, dword [esi + 4]
mov edx, 0x2df45158
pcmpeqd xmm1, xmm1
mov ebx, dword [eax + 0x20]
mov ecx, eax
mov edi, dword [ecx + 0x24]
mov eax, ebx
mul edx
imul ecx, edi, 0x2df45158
bswap edi
mov dword [esi + 0x10], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
imul ebx, ebx, 0xb36a80d2
add ecx, eax
mov eax, edi
mov dword [esi + 0x40], ecx
mov ecx, 0xb36a80d2
mul ecx
mov ecx, eax
imul eax, edi, 0xa7ae0bd2
add eax, edx
bswap ecx
mov edx, 0x2df45158
add ebx, eax
xor ecx, dword [esi + 0x40]
bswap ebx
xor ebx, dword [esi + 0x10]
mov eax, ebx
mul edx
mov dword [esi + 0x10], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
imul edx, ecx, 0x2df45158
bswap ecx
add edx, eax
mov eax, ecx
imul ecx, ecx, 0xa7ae0bd2
mov dword [esi + 0x40], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
add ecx, edx
imul eax, ebx, 0xb36a80d2
bswap edi
add eax, ecx
mov ecx, dword [esi + 4]
xor edi, dword [esi + 0x40]
bswap eax
xor eax, dword [esi + 0x10]
mov ebx, dword [ecx + 0x2c]
mov dword [esi + 0x100], edi
mov edi, dword [ecx + 0x28]
mov dword [esi + 0xd0], eax
mov dword [esi + 0x2c], ebx
bswap ebx
mov ecx, edi
not edi
bswap ecx
imul ecx, eax
mul ebx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x100]
add edx, ecx
mov ecx, dword [esi + 0x2c]
imul ebx, eax
bswap eax
not ecx
add ebx, edx
imul ecx, eax
mul edi
mov dword [esi + 0x40], ebx
mov ebx, dword [esi + 0xd0]
add edx, ecx
bswap eax
mov dword [esi + 0xd0], 0
xor eax, dword [esi + 0x40]
mov ecx, ebx
bswap ecx
imul edi, ecx
mov ecx, ebx
add edi, edx
mov edx, eax
bswap edi
xor edi, dword [esi + 0x10]
test bl, 0x20
cmovne edx, edi
cmovne edi, eax
mov eax, dword [esi + 4]
shld edi, edx, cl
mov ecx, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
mov eax, edi
shr eax, 0x19
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
mov eax, ecx
lea edx, [ecx - 0x30]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x40], ebx
pshufd xmm0, xmm0, 0
and edi, ebx
movdqa xmm3, xmm0
movdqu xmm2, xmmword [eax + edi]
mov dword [esi + 0x10], edi
pcmpeqb xmm3, xmm2
pmovmskb eax, xmm3
nop word cs:[eax + eax]
test ax, ax
je 0x4f7570
lea ecx, [eax - 1]
and ecx, eax
tzcnt eax, eax
add eax, dword [esi + 0x10]
and eax, dword [esi + 0x40]
neg eax
lea edi, [eax + eax*2]
shl edi, 4
mov eax, dword [edx + edi]
mov ebx, dword [edx + edi + 4]
or ebx, dword [edx + edi + 0xc]
or eax, dword [edx + edi + 8]
or eax, ebx
mov eax, ecx
jne 0x4f7530
jmp 0x4f759d
mov ebx, dword [esi + 0x40]
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
test eax, eax
jne 0x4f75ae
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0xd0]
lea edi, [edi + eax + 0x10]
add eax, 0x10
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x2c]
jmp 0x4f7510
cmp dword [esi + 0x24], 0
je 0x4f75e4
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0x48]
jmp 0x4f76c2
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x20], 0
movd eax, xmm4
test eax, eax
je 0x4f75ce
push dword [esi + 0x70]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
xor ecx, ecx
mov eax, 8
lock cmpxchg dword [edi], ecx
jne 0x4f77ac
jmp 0x4f77c1
mov eax, dword [esi + 0x2c]
movdqa xmmword [esi + 0x40], xmm4
movaps xmmword [esi + 0xd0], xmm5
movlps qword [eax + edi - 0x14], xmm5
mov dword [eax + edi - 0xc], 4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x48]
mov dword [eax + 0x48], 0
test ecx, ecx
mov dword [esi + 0x2c], ecx
je 0x4f76a6
mov eax, dword [eax + 0x40]
neg ecx
mov ebx, 1
add eax, 0x18
nop word cs:[eax + eax]
nop
mov edx, dword [eax - 0x18]
mov edi, dword [eax - 0x14]
or edi, dword [eax - 0xc]
or edx, dword [eax - 0x10]
or edx, edi
je 0x4f995f
lea edx, [ecx + ebx + 1]
add eax, 0x38
inc ebx
cmp edx, 1
jne 0x4f7630
mov ecx, dword [esi + 4]
mov dword [esi + 0x10], 0
jmp 0x4f76b9
add edi, 8
movss dword [esi + 0x10], xmm0
mov ecx, edi
call fcn.00719c10
movss xmm0, dword [esi + 0x10]
jmp 0x4f51f8
mov ecx, edi
call fcn.00719c10
test bl, bl
mov dword [esi + 0xa8], edi
jne 0x4f583a
jmp 0x4f5906
mov ecx, edi
mov dword [esi + 0x348], 0xffffffff
call fcn.007188f0
jmp 0x4f5917
xor ebx, ebx
mov dword [esi + 0x10], 0
cmp ebx, ecx
jne 0x4f9996
mov ecx, eax
mov edx, dword [esi + 0x2c]
sub edx, dword [esi + 0x10]
mov dword [ecx + 0x48], edx
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x70]
mov ebx, dword [esi + 0x24]
movsd xmm0, qword [esi + 0x2a8]
mov dword [esi + 0x1d0], eax
mov dword [esi + 0x1d4], edi
mov edi, dword [esi + 0x2b0]
movq qword [esi + 0x1d8], xmm4
movlps qword [esi + 0x1e0], xmm5
mov dword [esi + 0x1e8], ebx
movsd qword [esi + 0x1ec], xmm0
xorps xmm0, xmm0
mov dword [esi + 0x1f4], edi
movaps xmmword [esi + 0x1c0], xmm0
cmp edx, dword [ecx + 0x44]
jne 0x4f772f
add ecx, 0x40
mov dword [esi + 0x348], 9
call fcn.005a6900
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0x48]
mov eax, dword [ecx + 0x40]
movsd xmm0, qword [esi + 0x1f0]
mov ebx, ecx
imul ecx, edx, 0x38
mov edi, dword [esi + 0xc]
inc edx
movsd qword [eax + ecx + 0x30], xmm0
movsd xmm0, qword [esi + 0x1e8]
movsd qword [eax + ecx + 0x28], xmm0
movsd xmm0, qword [esi + 0x1e0]
movsd qword [eax + ecx + 0x20], xmm0
movsd xmm0, qword [esi + 0x1d8]
movsd qword [eax + ecx + 0x18], xmm0
movsd xmm0, qword [esi + 0x1d0]
movsd qword [eax + ecx + 0x10], xmm0
movsd xmm0, qword [esi + 0x1c0]
movsd xmm1, qword [esi + 0x1c8]
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
mov dword [ebx + 0x48], edx
xor ecx, ecx
mov eax, 8
lock cmpxchg dword [edi], ecx
je 0x4f77c1
mov ecx, edi
mov byte [esi + 0x69], 0
mov dword [esi + 0x348], 8
call fcn.00719150
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x30]
mov dword [esi + 0x10], 0
mov ecx, dword [eax + 0x654]
xor eax, eax
mov ebx, 8
mov dword [esi + 0x40], ecx
lea edi, [ecx + 8]
lock cmpxchg dword [ecx + 8], ebx
je 0x4f7808
mov eax, dword [esi + 0x10]
mov ecx, edi
mov dword [esi + 0x348], 7
mov dword [esi + 0x10], edi
mov byte [esi + 0x6a], al
call fcn.007188f0
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 0x30]
mov eax, dword [esi + 0x40]
cmp edx, 2
movsd xmm0, qword [eax + 0x50]
movsd qword [esi + 0x2b8], xmm0
movq xmm0, qword [eax + 0x40]
movq xmm1, qword [eax + 0x48]
movq qword [esi + 0x2b0], xmm1
movq qword [esi + 0x2a8], xmm0
mov dword [eax + 0x40], 8
mov dword [eax + 0x44], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x4c], 8
mov dword [eax + 0x50], 0
mov dword [eax + 0x54], 0
jne 0x4f7887
cmp dword [esi + 0x238], 2
je 0x4f7887
cmp dword [esi + 0x240], 0
je 0x4f7887
push dword [esi + 0x23c]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
xor ecx, ecx
mov eax, 8
lock cmpxchg dword [edi], ecx
je 0x4f78a7
mov ecx, edi
mov dword [esi + 0x348], 6
call fcn.00719150
xor ecx, ecx
mov ebx, dword [esi + 0xa8]
mov eax, 8
mov edi, 8
lock cmpxchg dword [ebx], ecx
jne 0x4f993b
xor eax, eax
mov ecx, ebx
lock cmpxchg dword [ebx], edi
je 0x4f78e0
mov dword [esi + 0x348], 0x10
call fcn.007188f0
mov ecx, dword [esi + 0xa8]
mov edx, dword [esi + 0x3c]
mov eax, 8
xor edi, edi
mov ebx, 8
movsd xmm0, qword [edx + 0x478]
movsd qword [esi + 0x148], xmm0
movsd xmm0, qword [edx + 0x470]
movsd qword [esi + 0x140], xmm0
movsd xmm0, qword [edx + 0x468]
movsd qword [esi + 0x138], xmm0
movsd xmm0, qword [edx + 0x460]
movsd qword [esi + 0x130], xmm0
movsd xmm0, qword [edx + 0x458]
movsd qword [esi + 0x128], xmm0
movq xmm0, qword [edx + 0x448]
movq xmm1, qword [edx + 0x450]
movq qword [esi + 0x120], xmm1
movq qword [esi + 0x118], xmm0
mov dword [edx + 0x448], 0
mov byte [edx + 0x460], 2
mov dword [edx + 0x464], 1
mov dword [edx + 0x468], 0
mov dword [edx + 0x46c], 0
mov dword [edx + 0x470], 8
mov dword [edx + 0x474], 0
mov dword [edx + 0x478], 0
mov word [edx + 0x47c], 0
lock cmpxchg dword [edx + 8], edi
je 0x4f79d6
mov dword [esi + 0x348], 0x10
call fcn.00719150
mov ecx, dword [esi + 0xa8]
mov ebx, 8
xor eax, eax
lock cmpxchg dword [ecx], ebx
je 0x4f79f3
mov dword [esi + 0x348], 0x11
call fcn.007188f0
mov ecx, dword [esi + 0xa8]
mov edi, dword [esi + 0x3c]
mov eax, dword [edi + 0x4a0]
test eax, eax
je 0x4f7a44
dec eax
mov dword [esi + 0x8c], 0
mov dword [edi + 0x4a0], eax
mov al, 1
mov dword [edi + 0x484], 0xffffffff
mov dword [edi + 0x480], 0xffffffff
mov dword [edi + 0x488], 0x3b9ac9ff
mov dword [esi + 0xf0], 0
mov dword [esi + 0x64], 0
jmp 0x4f7a8e
mov eax, dword [edi + 0x488]
mov edx, dword [edi + 0x480]
mov ebx, dword [edi + 0x484]
mov dword [edi + 0x480], 0xffffffff
mov dword [edi + 0x484], 0xffffffff
mov dword [edi + 0x488], 0x3b9ac9ff
test eax, eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0xf0], edx
mov dword [esi + 0x64], ebx
sete al
or edx, ebx
je 0x4f7a31
xor eax, eax
mov edi, dword [esi + 0x3c]
mov ebx, 8
mov byte [edi + 0x4a4], al
add dword [edi + 0x490], 1
mov eax, 8
adc dword [edi + 0x494], 0
xor edx, edx
lock cmpxchg dword [edi + 8], edx
je 0x4f7ad2
mov dword [esi + 0x348], 0x11
call fcn.00719150
mov ecx, dword [esi + 0xa8]
mov ebx, 8
xor eax, eax
lock cmpxchg dword [ecx], ebx
je 0x4f7ae9
mov dword [esi + 0x348], 0x11
call fcn.007188f0
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + 0x1d8]
mov ecx, dword [eax + 0x1d0]
add eax, 0x4c8
mov dword [esi + 0xc4], 8
mov dword [esi + 0xc8], 0
mov dword [esi + 0xcc], 0
mov dword [esi + 0x3c], eax
mov eax, 0x740cf0
shl edx, 4
mov dword [esi + 0x260], ecx
add edx, ecx
mov dword [esi + 0x20], edx
jmp 0x4f7b5a
mov eax, dword [esi + 0x270]
lea ecx, str.Pos2_index_out_of_bounds:
cmp eax, ecx
mov ecx, dword [esi + 0xa8]
je 0x4f8114
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x270], eax
mov eax, ecx
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x3c]
shl eax, 4
mov ebx, dword [ecx + eax]
mov edi, dword [ecx + eax + 0xc]
lea edx, [ecx + eax]
mov dword [esi + 0x24], edx
movdqa xmm0, xmmword [ebx]
lea ecx, [ebx + 0x10]
pmovmskb edx, xmm0
not edx
nop dword [eax]
test edi, edi
je 0x4f7cf0
test dx, dx
jne 0x4f7bb9
nop dword [eax]
movdqa xmm0, xmmword [ecx]
add ebx, 0xfffffe80
add ecx, 0x10
pmovmskb edx, xmm0
cmp dx, 0xffff
je 0x4f7ba0
not edx
mov eax, edx
dec edi
lea edx, [eax - 1]
and edx, eax
tzcnt eax, eax
neg eax
lea eax, [eax + eax*2]
cmp dword [ebx + eax*8 - 8], 0
jne 0x4f7b90
mov dword [esi + 0x2c], edi
mov edi, dword [esi + 0x24]
mov dword [esi + 0x70], edx
lea edx, [ebx + eax*8]
mov dword [esi + 0xc], ecx
pcmpeqd xmm1, xmm1
mov dword [esi + 0xd0], ebx
mov dword [esi + 0x30], edx
mov eax, dword [edi]
mov ecx, eax
sub ecx, edx
sar ecx, 3
imul ecx, ecx, 0xaaaaaaab
lea edx, [ecx - 0x10]
and edx, dword [edi + 4]
movdqu xmm0, xmmword [eax + edx]
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb edi, xmm0
test edi, edi
je 0x4f7c21
bsr di, di
xor edi, 0xf
jmp 0x4f7c25
mov di, 0x10
movdqu xmm0, xmmword [eax + ecx]
pcmpeqb xmm0, xmm1
pmovmskb ebx, xmm0
or ebx, 0x10000
tzcnt ebx, ebx
add edi, ebx
mov bl, 0x80
cmp di, 0xf
ja 0x4f7c4e
mov edi, dword [esi + 0x24]
mov bl, 0xff
inc dword [edi + 8]
mov byte [eax + ecx], bl
mov byte [edx + eax + 0x10], bl
mov eax, dword [esi + 0x24]
mov dword [esi + 0x10], 0
dec dword [eax + 0xc]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax - 0x10]
mov eax, dword [eax - 8]
mov dword [esi + 0x100], ecx
add ecx, 0x10
mov dword [esi + 4], eax
nop word [eax + eax]
mov eax, dword [esi + 0x10]
cmp dword [esi + 4], eax
je 0x4f7cb0
inc eax
lea edx, [ecx + 0x40]
mov dword [esi + 0x348], 0x15
mov dword [esi + 0x10], eax
mov dword [esi + 0x40], edx
call fcn.00529330
mov ecx, dword [esi + 0x40]
jmp 0x4f7c80
mov eax, dword [esi + 0x30]
mov ebx, dword [esi + 0xd0]
mov edi, dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x70]
cmp dword [eax - 0xc], 0
je 0x4f7b90
push dword [eax - 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esi + 0x70]
mov ecx, dword [esi + 0xc]
jmp 0x4f7b90
mov ecx, dword [esi + 0xc8]
mov eax, dword [esi + 0xc4]
mov edi, dword [esi + 0xcc]
mov ebx, dword [esi + 0x260]
mov dword [esi + 0x100], ecx
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x90], eax
jmp 0x4f7d4d
lea eax, [ebx + edx]
mov dword [esi + 0x10], eax
shl ebx, 6
mov eax, dword [esi + 0xc]
shl edx, 6
add ebx, dword [esi + 0x90]
lea edi, [eax + edi*8 - 0x18]
push edx
push ecx
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [edi + 0x10], 0
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x58]
mov ebx, dword [esi + 0x2c]
cmp ebx, dword [esi + 0x20]
je 0x4f7f30
mov eax, ebx
add ebx, 0x10
cmp byte [eax + 8], cl
jne 0x4f7d4d
mov edx, dword [esi + 0x24]
cmp dword [edx + 0xc], 0
je 0x4f7d4d
mov dword [esi + 0xd0], edi
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x70], 0
mov dword [esi + 0x30], eax
mov eax, edi
mov edx, dword [ecx]
mov dword [esi + 4], edi
shr eax, 0x19
movd xmm0, eax
mov eax, dword [ecx + 4]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea ebx, [edx - 0x18]
mov dword [esi + 0xc], edx
pshufd xmm0, xmm0, 0
mov dword [esi + 0x40], eax
and edi, eax
movdqa xmm2, xmm0
movdqu xmm1, xmmword [edx + edi]
mov dword [esi + 0x10], edi
pcmpeqb xmm2, xmm1
pmovmskb ecx, xmm2
nop word cs:[eax + eax]
nop dword [eax]
test cx, cx
je 0x4f7e00
lea edx, [ecx - 1]
and edx, ecx
tzcnt ecx, ecx
add ecx, dword [esi + 0x10]
and ecx, dword [esi + 0x40]
neg ecx
lea edi, [ecx + ecx*2]
mov ecx, dword [ebx + edi*8 + 4]
mov eax, dword [ebx + edi*8]
xor ecx, dword [esi + 0x30]
xor eax, dword [esi + 4]
or eax, ecx
mov ecx, edx
jne 0x4f7dd0
jmp 0x4f7e30
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x4f7f1c
mov eax, dword [esi + 0x70]
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
lea edi, [edi + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x40]
jmp 0x4f7dac
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x100]
mov ebx, dword [esi + 0xd0]
mov edx, dword [ecx + edi*8 - 8]
mov ecx, dword [ecx + edi*8 - 0x10]
sub eax, ebx
cmp eax, edx
jae 0x4f7d19
mov eax, ebx
add eax, edx
jb 0x4f9ce8
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x100]
mov dword [esi + 0x10], eax
mov dword [esi + 0x40], edx
lea ebx, [ecx + ecx]
cmp ebx, eax
cmovbe ebx, eax
mov eax, 4
cmp ebx, 5
cmovb ebx, eax
xor edx, edx
cmp ebx, 0x2000000
mov eax, ebx
setb dl
shl eax, 6
shl edx, 3
test ecx, ecx
mov dword [esi + 4], eax
je 0x4f7eb3
mov eax, dword [esi + 0x90]
shl ecx, 6
mov dword [esi + 0x1c0], eax
mov dword [esi + 0x1c8], ecx
mov ecx, 8
jmp 0x4f7eb5
xor ecx, ecx
mov dword [esi + 0x1c4], ecx
lea ecx, [esi + 0x238]
lea eax, [esi + 0x1c0]
push eax
push dword [esi + 4]
call fcn.00563910
add esp, 8
cmp dword [esi + 0x238], 0
mov ecx, dword [esi + 0x23c]
je 0x4f7eff
mov edx, dword [esi + 0x40]
cmp ecx, 0x80000001
jne 0x4f9cda
mov ebx, dword [esi + 0xd0]
mov ecx, dword [esi + 0x30]
jmp 0x4f7d1f
mov dword [esi + 0x90], ecx
mov dword [esi + 0x100], ebx
mov ebx, dword [esi + 0xd0]
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x30]
jmp 0x4f7d1f
mov ecx, dword [esi + 0x58]
mov edi, dword [esi + 0xd0]
mov ebx, dword [esi + 0x2c]
jmp 0x4f7d4d
mov eax, dword [esi + 0x100]
mov dword [esi + 0xcc], edi
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0xc4], eax
mov eax, dword [esi + 0x24]
mov edi, dword [eax]
mov eax, dword [eax + 0xc]
movdqa xmm0, xmmword [edi]
lea ebx, [edi + 0x10]
pmovmskb edx, xmm0
not edx
jmp 0x4f7fc3
mov edx, dword [esi + 0x70]
mov eax, dword [esi + 0x2c]
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc8], eax
nop word [eax + eax]
lea eax, [edx - 1]
mov ecx, dword [esi + 0x40]
and eax, edx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
shl ecx, 6
shl eax, 6
add eax, dword [esi + 0xc4]
push ecx
push dword [esi + 0x24]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
add eax, dword [esi + 0x40]
mov dword [esi + 0xcc], eax
mov eax, dword [esi + 4]
mov dword [eax - 8], 0
mov eax, dword [esi + 0x30]
sub eax, 1
mov dword [esi + 0x30], eax
jb 0x4f7b40
test dx, dx
jne 0x4f7ff9
nop word cs:[eax + eax]
nop
movdqa xmm0, xmmword [ebx]
add edi, 0xfffffe80
add ebx, 0x10
pmovmskb edx, xmm0
cmp dx, 0xffff
je 0x4f7fe0
not edx
test edi, edi
je 0x4f7b40
tzcnt eax, edx
neg eax
lea eax, [eax + eax*2]
lea ecx, [edi + eax*8 - 0x10]
test ecx, ecx
je 0x4f7b40
lea eax, [edi + eax*8]
mov ecx, dword [esi + 0xc8]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xcc]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 4]
sub ecx, dword [esi + 0x10]
mov dword [esi + 0x24], ecx
mov ecx, dword [eax - 8]
mov eax, dword [eax - 0x10]
mov dword [esi + 0x40], ecx
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x24], eax
cmp ecx, dword [esi + 0x40]
jae 0x4f7f80
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x40]
add eax, ecx
jb 0x4f8100
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x70], edx
add ecx, ecx
cmp ecx, eax
cmova eax, ecx
mov ecx, 4
cmp eax, 5
cmovb eax, ecx
xor edx, edx
cmp eax, 0x2000000
mov dword [esi + 0x2c], eax
mov ecx, eax
mov eax, dword [esi + 0xc]
setb dl
shl ecx, 6
shl edx, 3
mov dword [esi + 0xd0], ecx
test eax, eax
je 0x4f80b3
mov ecx, dword [esi + 0xc4]
shl eax, 6
mov dword [esi + 0x1c0], ecx
mov dword [esi + 0x1c8], eax
mov eax, 8
jmp 0x4f80b5
xor eax, eax
mov dword [esi + 0x1c4], eax
lea ecx, [esi + 0x238]
lea eax, [esi + 0x1c0]
push eax
push dword [esi + 0xd0]
call fcn.00563910
add esp, 8
cmp dword [esi + 0x238], 0
mov ecx, dword [esi + 0x23c]
je 0x4f7f65
mov edx, dword [esi + 0x70]
cmp ecx, 0x80000001
je 0x4f7f80
test ecx, ecx
jne 0x4f9e4c
mov dword [esi + 0x348], 0x13
call fcn.00425040
jmp 0x4fa439
xor edx, edx
mov eax, 8
mov edi, dword [esi + 0xc4]
movq xmm2, qword [esi + 0xc8]
lock cmpxchg dword [ecx], edx
je 0x4f814e
mov dword [esi + 0x348], 0x11
mov dword [esi + 0x10], edi
movdqa xmmword [esi + 0x40], xmm2
call fcn.00719150
movdqa xmm2, xmmword [esi + 0x40]
mov edi, dword [esi + 0x10]
movsd xmm1, qword [esi + 0x138]
movsd xmm3, qword [esi + 0x140]
movsd xmm0, qword [esi + 0x148]
movsd xmm4, qword [esi + 0x118]
mov ebx, dword [esi + 0x84]
mov eax, dword [esi + 0xf0]
mov edx, dword [esi + 0x64]
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x348], 0xffffffff
movsd qword [esi + 0x1e0], xmm1
movsd xmm1, qword [esi + 0x128]
movsd qword [esi + 0x1e8], xmm3
movsd xmm3, qword [esi + 0x130]
movsd qword [esi + 0x1f0], xmm0
movsd qword [esi + 0x1c0], xmm4
movsd qword [esi + 0x1d0], xmm1
movsd xmm1, qword [esi + 0x120]
movsd qword [esi + 0x1d8], xmm3
movsd xmm3, qword [esi + 0x2a8]
movsd qword [esi + 0x1c8], xmm1
movsd xmm1, qword [esi + 0x2b0]
movsd qword [esi + 0x208], xmm3
movsd qword [esi + 0x210], xmm1
movsd xmm1, qword [esi + 0x2b8]
movsd qword [esi + 0x218], xmm1
mov dword [esi + 0x220], edi
lea edi, [ebx + 0x138]
movq qword [esi + 0x224], xmm2
mov dword [esi + 0x1fc], edx
mov dword [esi + 0x1f8], eax
mov dword [esi + 0x200], ecx
lea edx, [esi + 0x1c0]
mov ecx, edi
call fcn.0055e4b0
push 0x70
push edi
lea eax, [esi + 0x1c0]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, ebx
add esp, 0xc
mov dword [ebx + 0x138], 0
mov byte [ebx + 0x150], 2
mov dword [ebx + 0x154], 1
mov dword [ebx + 0x158], 0
mov dword [ebx + 0x15c], 0
mov dword [ebx + 0x160], 8
mov dword [ebx + 0x174], 0
mov dword [ebx + 0x170], 0
mov dword [ebx + 0x178], 0
mov dword [ebx + 0x168], 0
mov dword [ebx + 0x164], 0
mov word [ebx + 0x16c], 0
mov dword [ebx + 0x180], 8
mov dword [ebx + 0x184], 0
mov dword [ebx + 0x188], 0
mov dword [ebx + 0x18c], 8
mov dword [ebx + 0x190], 0
mov dword [ebx + 0x194], 0
mov dword [ebx + 0x198], 8
mov dword [ebx + 0x19c], 0
mov dword [ebx + 0x1a0], 0
movzx eax, byte [ebx + 0x10f]
movss xmm0, dword [ebx + 0xec]
cmp byte [ebx + 0x10d], 0
movzx edi, byte [ebx + 0x110]
movzx edx, byte [ebx + 0x10e]
mov dh, byte [ebx + 0x111]
mov byte [esi + 0x10], al
movzx eax, byte [ebx + 0x112]
movss dword [esi + 0xf0], xmm0
movss xmm0, dword [ebx + 0xf0]
setne byte [esi + 0x2c]
cmp byte [ebx + 0x1e3], 0
mov dword [esi + 0x30], edi
mov byte [esi + 0x24], al
movzx eax, byte [ebx + 0x113]
movss dword [esi + 0x260], xmm0
movss xmm0, dword [ebx + 0xf8]
setne byte [esi + 0x100]
cmp byte [ebx + 0x10c], 0
mov byte [esi + 0x40], al
movzx eax, byte [ebx + 0x114]
movss dword [esi + 0x64], xmm0
movss xmm0, dword [ebx + 0xfc]
mov byte [esi + 4], al
movzx eax, byte [ebx + 0x115]
movss dword [esi + 0x8c], xmm0
mov byte [esi + 0xc0], al
movzx eax, byte [ebx + 0x116]
mov byte [esi + 0xe4], al
mov eax, dword [ebx + 0xe8]
mov dword [esi + 0x20], eax
mov eax, dword [ebx + 0xf4]
mov dword [esi + 0xd0], eax
mov eax, dword [ebx + 0x100]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x104]
mov dword [esi + 0x58], eax
mov eax, dword [ebx + 0x108]
mov dword [ebx + 0xe8], 0
mov dword [ebx + 0xf4], 0
mov dword [ebx + 0x100], 0
mov word [ebx + 0x10c], 0
mov byte [ebx + 0x10e], 0
mov dword [ebx + 0x10f], 0x2020202
mov dword [ebx + 0x112], 0x2020202
mov byte [ebx + 0x116], 3
mov byte [ebx + 0x1e3], 0
mov dword [esi + 0x270], eax
je 0x4f85a2
mov byte [esi + 0x90], dh
mov byte [esi + 0x70], dl
mov byte [esi + 0x57], 1
mov dword [esi + 0x348], 0x17
push dword [ebp + 8]
mov eax, dword [ebp + 0xc]
call dword [eax + 0x14]
add esp, 4
mov ecx, dword [esi + 0x84]
mov byte [ecx + 0x1e2], al
mov eax, dword [0x919aa8]
movzx edx, byte [esi + 0x70]
mov dh, byte [esi + 0x90]
cmp eax, 4
jb 0x4f85a2
lea eax, [ecx + 0x1e2]
mov ecx, str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
lea edx, [esi + 0x118]
mov dword [esi + 0x118], eax
mov dword [esi + 0x11c], 0x414470
mov eax, dword [0x91975c]
mov dword [esi + 0x17c], 0x73ee84
mov dword [esi + 0x180], 1
mov dword [esi + 0x184], edx
lea edx, [esi + 0x150]
mov dword [esi + 0x188], 1
mov dword [esi + 0x18c], 0
mov dword [esi + 0x170], 4
mov dword [esi + 0x174], str.eframe::native::epi_integrationApp::on_close_event_returned_g
mov dword [esi + 0x178], 0x1f
mov dword [esi + 0x158], 0
mov dword [esi + 0x160], 0x1f
mov dword [esi + 0x15c], str.eframe::native::epi_integrationApp::on_close_event_returned_g
mov dword [esi + 0x164], 0
mov dword [esi + 0x16c], 0x75
mov dword [esi + 0x168], str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001feframe_0.22.0_src_nativeepi_integration.rs
mov dword [esi + 0x150], 1
mov dword [esi + 0x154], 0x200
mov byte [esi + 0x57], 1
cmp eax, 2
mov eax, 0x8b82b8
cmove eax, dword [0x9192e0]
cmove ecx, dword [str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs]
push edx
push ecx
call dword [eax + 0x14]
add esp, 8
mov ecx, dword [esi + 0x84]
movzx edx, byte [esi + 0x70]
mov dh, byte [esi + 0x90]
mov byte [ecx + 0x111], dh
mov byte [ecx + 0x10e], dl
cmp byte [ecx + 0x116], 3
je 0x4f85be
mov byte [ecx + 0x116], 3
mov eax, dword [esi + 0x2c0]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x4f85dd
mov edx, eax
add edx, 0x10
jb 0x4f85dd
lock cmpxchg dword [ecx], edx
je 0x4f8602
mov byte [esi + 0x57], 1
mov dword [esi + 0x348], 0x17
mov dword [esi + 0x70], ecx
mov dword [esi + 0x90], edi
call fcn.00719890
mov edi, dword [esi + 0x90]
mov ecx, dword [esi + 0x70]
movss xmm0, dword [edi + 0x37c]
mov eax, 0xfffffff0
movss dword [esi + 0x70], xmm0
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x4f8634
mov byte [esi + 0x57], 1
mov dword [esi + 0x348], 0x17
call fcn.00719c10
cmp byte [esi + 0x10], 2
je 0x4f8842
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
lock inc dword [ecx]
jle 0x4fa031
cmp byte [esi + 0x10], 0
mov dword [esi + 0x11c], eax
mov dword [esi + 0x118], ecx
mov dword [esi + 0xb4], eax
mov dword [esi + 0x90], ecx
mov byte [esi + 0xb], 1
mov dword [esi + 0x348], 0x1a
setne byte [esi + 0x120]
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov edi, dword [ebp + 0x10]
cmp dword [edi + 8], eax
jne 0x4f8762
mov eax, dword [esi + 0x90]
mov byte [esi + 0xb], 1
add eax, 8
mov dword [esi + 0xec], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f9881
mov byte [esi + 0xb], 1
call fcn.00721f90
xor al, 1
mov edx, dword [esi + 0x90]
movzx ecx, byte [edx + 0xc]
test cl, cl
jne 0x4f9895
xor ebx, ebx
cmp byte [esi + 0x10], 0
mov ecx, dword [edx + 0xc4]
setne bl
mov dword [esi + 0x290], ecx
and ecx, 0xfff7ffff
shl ebx, 0x13
or ebx, ecx
test al, al
mov dword [esi + 0x10], ebx
mov dword [edx + 0xc4], ebx
je 0x4f98d9
mov byte [esi + 0xb], 1
push dword [esi + 0xec]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [esi + 0x290]
mov edx, dword [esi + 0xb4]
mov byte [esi + 0xb], 1
push dword [esi + 0x10]
call fcn.006ff220
add esp, 4
mov eax, dword [esi + 0x90]
lock dec dword [eax]
jne 0x4f8842
mov ecx, dword [esi + 0x118]
mov byte [esi + 3], 1
mov dword [esi + 0x348], 0x18
call fcn.004f30b0
jmp 0x4f8842
mov eax, dword [esi + 0x120]
movsd xmm0, qword [esi + 0x118]
mov dword [esi + 0x158], eax
movsd qword [esi + 0x150], xmm0
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f87a1
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa293
mov dword [0x919820], eax
push 0xc
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4fa293
mov ebx, eax
mov eax, dword [esi + 0x158]
mov dword [ebx + 8], eax
movsd xmm0, qword [esi + 0x150]
movsd qword [ebx], xmm0
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f87ee
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa2b1
mov dword [0x919820], eax
push 8
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4fa2b1
mov dword [eax], ebx
mov dword [eax + 4], 0x73e5f0
mov dword [esi + 0x10], eax
mov ecx, 0x919540
mov byte [esi + 0xb], 0
mov eax, dword [edi + 0xc]
mov dword [esi + 0x90], eax
call fcn.006fd340
mov byte [esi + 0xb], 0
push 0
push dword [esi + 0x10]
push eax
push dword [esi + 0x90]
call dword [sym.imp.user32.dll_PostMessageW]
test eax, eax
je 0x4fa339
cmp dword [esi + 0x20], 1
jne 0x4f8bb4
movss xmm0, dword [esi + 0xf0]
mulss xmm0, dword [esi + 0x70]
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0x2f0]
movss xmm0, dword [esi + 0x2f0]
movss dword [esi + 0x20], xmm0
movss xmm0, dword [esi + 0x260]
mulss xmm0, dword [esi + 0x70]
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
mov eax, dword [ebp + 0x10]
fstp dword [esi + 0x2f4]
movss xmm0, dword [esi + 0x2f4]
mov byte [esi + 3], 1
mov dword [esi + 0x348], 0x18
mov ecx, dword [eax]
movss dword [esi + 0x70], xmm0
call fcn.006fc2a0
movsd xmm0, qword [eax + 0x88]
mov ecx, eax
test dl, dl
movsd qword [esi + 0x10], xmm0
je 0x4f8d69
mov byte [esi + 3], 1
push ecx
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
movsd xmm0, qword [esi + 0x10]
movsd qword [esi + 0x330], xmm0
cmp dword [esi + 0x334], 0
js 0x4fa049
cvtsd2ss xmm1, xmm0
ucomiss xmm1, xmm1
jp 0x4fa049
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
movsd qword [esi + 0x308], xmm0
mov eax, dword [esi + 0x30c]
mov ecx, eax
and eax, 0x7ff00000
and ecx, 0xfffff
or ecx, dword [esi + 0x308]
jne 0x4f894a
cmp eax, 0x7ff00000
je 0x4fa049
test eax, eax
je 0x4fa049
test eax, eax
je 0x4fa049
mov eax, dword [ebp + 0x10]
movss dword [esi + 0x10], xmm1
mov byte [esi + 3], 1
mov ecx, dword [eax]
call fcn.006fc2a0
movsd xmm0, qword [eax + 0x88]
mov ecx, eax
test dl, dl
movsd qword [esi + 0x90], xmm0
je 0x4f8d9f
mov byte [esi + 3], 1
push ecx
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
movsd xmm3, qword [esi + 0x90]
movsd qword [esi + 0x300], xmm3
mov eax, dword [esi + 0x304]
movss xmm2, dword [esi + 0x10]
test eax, eax
js 0x4fa069
ucomisd xmm3, xmm3
jp 0x4fa069
mov ecx, eax
and eax, 0x7ff00000
and ecx, 0xfffff
or ecx, dword [esi + 0x300]
jne 0x4f89df
cmp eax, 0x7ff00000
je 0x4fa069
test eax, eax
je 0x4fa069
test eax, eax
je 0x4fa069
movss xmm1, dword [esi + 0x70]
movss xmm0, dword [esi + 0x20]
divss xmm1, xmm2
divss xmm0, xmm2
cvtss2sd xmm1, xmm1
cvtss2sd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm3
movsd qword [esi + 0x10], xmm1
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
add esp, 8
fstp qword [esi + 0x320]
movsd xmm0, qword [esi + 0x320]
movaps xmmword [esi + 0x90], xmm0
sub esp, 8
movsd xmm0, qword [esi + 0x10]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
add esp, 8
mov eax, dword [ebp + 0x10]
fstp qword [esi + 0x328]
movsd xmm0, qword [esi + 0x328]
mov edx, dword [eax]
movapd xmmword [esi + 0x70], xmm0
lock inc dword [edx]
jle 0x4fa031
mov edi, dword [eax + 4]
lea ecx, [eax + 8]
mov byte [esi + 3], 1
mov dword [esi + 0x20], edx
mov dword [esi + 0x10], edi
push edi
call fcn.004c33c0
add esp, 4
mov ecx, dword [esi + 0x20]
mov byte [esi + 3], 1
call fcn.006fc2a0
mov ecx, eax
mov eax, dword [eax + 0xbc]
test dl, dl
mov dword [esi + 0x20], eax
je 0x4f8dd5
mov byte [esi + 3], 1
push ecx
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
movapd xmm1, xmmword [esi + 0x90]
movsd xmm2, qword [0x725b80]
movsd xmm3, qword [0x725b88]
xorpd xmm0, xmm0
mov byte [esi + 3], 1
maxsd xmm1, xmm0
minsd xmm1, xmm2
cvttsd2si ecx, xmm1
subsd xmm1, xmm3
cvttsd2si eax, xmm1
movapd xmm1, xmmword [esi + 0x70]
mov edx, ecx
sar edx, 0x1f
and eax, edx
or eax, ecx
maxsd xmm1, xmm0
minsd xmm1, xmm2
cvttsd2si ecx, xmm1
subsd xmm1, xmm3
mov edx, ecx
cvttsd2si edi, xmm1
sar edx, 0x1f
and edi, edx
mov edx, dword [esi + 0x10]
or edi, ecx
mov ecx, dword [esi + 0x20]
push edi
push eax
call fcn.006ff5e0
add esp, 8
movq xmm0, qword [0x725628]
movd xmm2, eax
movsd xmm3, qword [0x725b80]
movsd xmm4, qword [0x725b88]
xorpd xmm1, xmm1
mov byte [esi + 3], 1
por xmm2, xmm0
subsd xmm2, xmm0
maxsd xmm2, xmm1
minsd xmm2, xmm3
cvttsd2si ecx, xmm2
subsd xmm2, xmm4
cvttsd2si eax, xmm2
movd xmm2, edx
mov edi, ecx
por xmm2, xmm0
sar edi, 0x1f
subsd xmm2, xmm0
and eax, edi
maxsd xmm2, xmm1
or eax, ecx
minsd xmm2, xmm3
cvttsd2si ecx, xmm2
subsd xmm2, xmm4
mov edx, ecx
cvttsd2si edi, xmm2
sar edx, 0x1f
and edi, edx
or edi, ecx
push 0x4216
push edi
push eax
push 0
push 0
push 0
push dword [esi + 0x10]
call dword [sym.imp.user32.dll_SetWindowPos]
mov byte [esi + 3], 1
push 0
push 0
push dword [esi + 0x10]
call dword [sym.imp.user32.dll_InvalidateRgn]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x4f8bd2
cmp eax, 2
mov eax, dword [ebp + 0x10]
je 0x4f9007
xor ecx, ecx
mov dword [esi + 0x30], 1
jmp 0x4f8bd7
mov eax, dword [ebp + 0x10]
mov cl, 1
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esi + 0x70], ecx
mov dword [esi + 0x260], edx
lock inc dword [eax]
jle 0x4fa031
mov dword [esi + 0x118], eax
mov dword [esi + 0x10], eax
add eax, 8
mov byte [esi + 0x3b], 1
mov dword [esi + 0x348], 0x25
mov dword [esi + 0x20], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f8cee
mov byte [esi + 0x3b], 1
call fcn.00721f90
xor al, 1
mov dword [esi + 0x90], eax
mov ebx, dword [esi + 0x10]
movzx eax, byte [ebx + 0xc]
test al, al
jne 0x4f8d07
mov edi, dword [ebx + 0x98]
test edi, edi
je 0x4f8d4e
mov eax, dword [ebx + 0x9c]
mov ecx, dword [ebx + 0xa0]
test eax, eax
mov dword [esi + 0xec], ecx
je 0x4f8e0b
mov edi, eax
movzx eax, word [ebx + 0xb0]
movsd xmm0, qword [ebx + 0xa4]
mov word [esi + 0x60], ax
mov eax, dword [ebx + 0xac]
movapd xmmword [esi + 0x290], xmm0
mov dword [esi + 0xe8], eax
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f8cb6
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa26d
mov dword [0x919820], eax
push 0xdc
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4fa26d
push 0xdc
push edi
mov dword [esi + 0xf0], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [ebx + 0x98]
mov ecx, edi
jmp 0x4f8e2a
mov dword [esi + 0x90], 0
mov ebx, dword [esi + 0x10]
movzx eax, byte [ebx + 0xc]
test al, al
je 0x4f8c42
mov eax, dword [esi + 0x20]
mov dword [esi + 0x348], 0x28
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esi + 0x150], eax
mov eax, dword [esi + 0x90]
mov byte [esi + 0x154], al
push 0x8f7fdc
push 0x73ed5c
lea eax, [esi + 0x150]
push eax
call fcn.0070a360
add esp, 0xc
jmp 0x4fa439
cmp byte [esi + 0x70], 0
jne 0x4f8fcc
xor edi, edi
mov dword [esi + 0xb4], 0
jmp 0x4f8e75
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f88db
mov byte [esi + 3], 1
mov dword [esi + 0x90], ecx
call fcn.00721f90
mov ecx, dword [esi + 0x90]
test al, al
jne 0x4f88db
mov byte [ecx + 4], 1
jmp 0x4f88db
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f897f
mov byte [esi + 3], 1
mov dword [esi + 0x260], ecx
call fcn.00721f90
mov ecx, dword [esi + 0x260]
test al, al
jne 0x4f897f
mov byte [ecx + 4], 1
jmp 0x4f897f
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f8aa1
mov byte [esi + 3], 1
mov dword [esi + 0x260], ecx
call fcn.00721f90
mov ecx, dword [esi + 0x260]
test al, al
jne 0x4f8aa1
mov byte [ecx + 4], 1
jmp 0x4f8aa1
movss xmm0, dword [ebx + 0xa4]
mov ecx, 1
mov dword [esi + 0xf0], 0
movapd xmmword [esi + 0x290], xmm0
mov eax, dword [esi + 0x70]
test ecx, ecx
sete dl
or dl, al
je 0x4f8e55
test ecx, ecx
sete cl
test cl, al
jne 0x4f8fb3
xor ecx, ecx
test al, al
mov dword [esi + 0xb4], 1
je 0x4f8e75
jmp 0x4f8e7a
cmp dword [ebx + 0x9c], 0
mov dword [esi + 0xb4], 1
jne 0x4f8e75
cmp dword [ebx + 0xa0], 0
je 0x4f8fb3
mov ecx, 1
test edi, edi
je 0x4f8e9b
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x4f8e9b
push eax
push 0
push dword [0x919820]
mov edi, ecx
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, edi
cmp byte [esi + 0x90], 0
mov dword [ebx + 0x98], ecx
mov dword [ebx + 0x9c], 0
mov dword [ebx + 0xa0], 0
je 0x4f8f78
mov byte [esi + 0x6d], 0
mov byte [esi + 0x6e], 1
mov dword [esi + 0x348], 0x27
push dword [esi + 0x20]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x260]
mov ecx, dword [esi + 0xb4]
mov edx, dword [esi + 0xf0]
movapd xmm0, xmmword [esi + 0x290]
movzx edi, word [esi + 0x60]
mov byte [esi + 0x6d], 1
mov byte [esi + 0x6e], 0
mov dword [esi + 0x18c], eax
mov dword [esi + 0x150], ecx
mov ecx, dword [esi + 0xec]
mov dword [esi + 0x154], edx
mov edx, dword [esi + 0xe8]
mov dword [esi + 0x158], ecx
mov ecx, dword [esi + 0x30]
movlpd qword [esi + 0x15c], xmm0
mov dword [esi + 0x164], edx
mov word [esi + 0x168], di
mov edx, dword [esi + 0x10]
mov dword [esi + 0x16c], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esi + 0x170], 0
mov dword [esi + 0x174], 0
mov dword [esi + 0x188], edx
lea edx, [esi + 0x150]
add ecx, 8
call fcn.004c39d0
jmp 0x4f9007
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f8ec2
mov byte [esi + 0x6d], 0
mov byte [esi + 0x6e], 1
mov dword [esi + 0x348], 0x27
call fcn.00721f90
test al, al
jne 0x4f8ec2
mov eax, dword [esi + 0x10]
mov byte [eax + 0xc], 1
jmp 0x4f8ec2
mov eax, dword [esi + 0xf0]
test eax, eax
je 0x4f8fcc
push eax
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp byte [esi + 0x90], 0
je 0x4f9854
mov byte [esi + 0x3b], 1
push dword [esi + 0x20]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x10]
lock dec dword [eax]
jne 0x4f9007
mov ecx, dword [esi + 0x118]
mov byte [esi + 0x6f], 0
mov dword [esi + 0x348], 0x24
call fcn.004f30b0
mov edx, dword [esi + 0xc]
test edx, edx
je 0x4f9097
mov dword [esi + 0x348], 0x22
lea ecx, [esi + 0x150]
push dword [esi + 0x270]
call fcn.00701a40
add esp, 4
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0x150]
mov dword [esi + 0x348], 0x23
mov eax, dword [eax + 4]
mov dword [esi + 0x10], ecx
push ecx
push eax
call dword [sym.imp.user32.dll_SetWindowTextW]
cmp dword [esi + 0x154], 0
je 0x4f906b
push dword [esi + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x58], 0
je 0x4f9082
push dword [esi + 0xc]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esi + 0x10], 0
cmp dword [esi + 0xd0], 1
je 0x4f90a9
jmp 0x4f9272
mov al, 1
mov dword [esi + 0x10], eax
cmp dword [esi + 0xd0], 1
jne 0x4f9272
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x348], 0x18
mov ecx, dword [eax]
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
call fcn.006fc2a0
movsd xmm0, qword [eax + 0x88]
mov ecx, eax
test dl, dl
movsd qword [esi + 0x30], xmm0
je 0x4f97f0
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
push ecx
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
movsd xmm2, qword [esi + 0x30]
movsd qword [esi + 0x2f8], xmm2
mov eax, dword [esi + 0x2fc]
test eax, eax
js 0x4fa089
ucomisd xmm2, xmm2
jp 0x4fa089
mov ecx, eax
and eax, 0x7ff00000
and ecx, 0xfffff
or ecx, dword [esi + 0x2f8]
jne 0x4f9134
cmp eax, 0x7ff00000
je 0x4fa089
test eax, eax
je 0x4fa089
test eax, eax
je 0x4fa089
movss xmm1, dword [esi + 0x8c]
movss xmm0, dword [esi + 0x64]
cvtss2sd xmm1, xmm1
cvtss2sd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm2
movsd qword [esi + 0x30], xmm1
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
add esp, 8
fstp qword [esi + 0x310]
xor edi, edi
movsd xmm0, qword [esi + 0x310]
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x725fd8]
minsd xmm0, qword [0x725fe0]
cvttsd2si ebx, xmm0
cmovp ebx, edi
sub esp, 8
movsd xmm0, qword [esi + 0x30]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
add esp, 8
fstp qword [esi + 0x318]
movsd xmm1, qword [0x725fd8]
movsd xmm2, qword [0x725fe0]
movsd xmm0, qword [esi + 0x318]
ucomisd xmm0, xmm0
maxsd xmm0, xmm1
minsd xmm0, xmm2
cvttsd2si eax, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
cmovp eax, edi
ucomisd xmm0, xmm0
maxsd xmm0, xmm1
minsd xmm0, xmm2
cvttsd2si ecx, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
cmovp ecx, edi
ucomisd xmm0, xmm0
maxsd xmm0, xmm1
minsd xmm0, xmm2
mov dword [esi + 0x20], ecx
cvttsd2si eax, xmm0
cmovp eax, edi
mov dword [esi + 0x70], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [eax]
lock inc dword [edx]
jle 0x4fa031
mov edi, dword [eax + 4]
lea ecx, [eax + 8]
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
mov dword [esi + 0x30], edi
push edi
call fcn.004c1f20
add esp, 4
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
push 0x4015
push 0
push 0
push dword [esi + 0x70]
push dword [esi + 0x20]
push 0
push dword [esi + 0x30]
call dword [sym.imp.user32.dll_SetWindowPos]
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
push 0
push 0
push dword [esi + 0x30]
call dword [sym.imp.user32.dll_InvalidateRgn]
movzx eax, byte [esi + 0x100]
and al, byte [esi + 0x2c]
je 0x4f9323
mov eax, dword [esi + 0x10]
mov dword [esi + 0x150], 0
mov dword [esi + 0x154], 0
mov dword [esi + 0x348], 0x18
mov byte [esi + 3], al
lea eax, [esi + 0x150]
push eax
call dword [sym.imp.user32.dll_GetCursorPos]
movq xmm0, qword [esi + 0x150]
mov eax, dword [esi + 0x10]
pshuflw xmm0, xmm0, 0xe8
mov byte [esi + 3], al
movd dword [esi + 0x150], xmm0
call dword [sym.imp.user32.dll_ReleaseCapture]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
call fcn.006fc2a0
mov ecx, eax
test dl, dl
mov byte [eax + 0xc4], 1
je 0x4f9822
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
push ecx
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov byte [esi + 3], cl
lea ecx, [esi + 0x150]
push ecx
push 2
push 0xa1
push eax
call dword [sym.imp.user32.dll_PostMessageW]
cmp byte [esi + 0x24], 2
je 0x4f934d
cmp byte [esi + 0x24], 1
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp + 0x10]
mov edx, 2
mov dword [esi + 0x348], 0x18
sbb edx, 0
mov byte [esi + 3], al
call fcn.006fec90
cmp byte [esi + 0x40], 2
je 0x4f94ee
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
lock inc dword [eax]
jle 0x4fa031
mov dword [esi + 0x238], eax
mov byte [esi + 0x5f], 1
mov dword [esi + 0x348], 0x1e
mov dword [esi + 0x24], ecx
push ecx
mov dword [esi + 0x30], eax
call dword [sym.imp.user32.dll_IsIconic]
test eax, eax
mov eax, dword [esi + 0x24]
mov byte [esi + 0x2b], 1
mov dword [esi + 0x348], 0x1f
setne byte [esi + 0x120]
cmp byte [esi + 0x40], 0
mov dword [esi + 0x118], eax
mov eax, dword [esi + 0x30]
mov dword [esi + 0x11c], eax
setne byte [esi + 0x121]
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov edi, dword [ebp + 0x10]
cmp dword [edi + 8], eax
jne 0x4f9408
lea eax, [esi + 0x118]
mov byte [esi + 0x2b], 1
push eax
call fcn.004c48d0
add esp, 4
mov eax, dword [esi + 0x30]
lock dec dword [eax]
jne 0x4f94e2
mov ecx, dword [esi + 0x11c]
mov byte [esi + 0x5f], 0
mov dword [esi + 0x348], 0x1e
call fcn.004f30b0
jmp 0x4f94e2
mov eax, dword [esi + 0x120]
movsd xmm0, qword [esi + 0x118]
mov dword [esi + 0x158], eax
movsd qword [esi + 0x150], xmm0
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f9447
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa2d2
mov dword [0x919820], eax
push 0xc
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4fa2d2
mov ebx, eax
mov eax, dword [esi + 0x158]
mov dword [ebx + 8], eax
movsd xmm0, qword [esi + 0x150]
movsd qword [ebx], xmm0
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f9494
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa2f0
mov dword [0x919820], eax
push 8
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4fa2f0
mov dword [eax], ebx
mov dword [eax + 4], 0x73e654
mov dword [esi + 0x30], eax
mov ecx, 0x919540
mov byte [esi + 0x2b], 0
mov eax, dword [edi + 0xc]
mov dword [esi + 0x24], eax
call fcn.006fd340
mov byte [esi + 0x2b], 0
push 0
push dword [esi + 0x30]
push eax
push dword [esi + 0x24]
call dword [sym.imp.user32.dll_PostMessageW]
test eax, eax
je 0x4fa384
mov eax, dword [esi + 0x2cc]
movzx ecx, byte [esi + 0x40]
mov byte [eax], cl
cmp byte [esi + 4], 2
mov ecx, dword [ebp + 0x10]
jne 0x4f9505
mov ecx, dword [ecx]
mov dword [esi + 0x348], 0x18
jmp 0x4f955e
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
lock inc dword [edx]
jle 0x4fa031
mov dword [esi + 0x154], eax
mov eax, dword [esi + 0x10]
cmp byte [esi + 4], 0
mov dword [esi + 0x150], edx
mov dword [esi + 0x40], edx
lea ecx, [ecx + 8]
lea edx, [esi + 0x150]
mov dword [esi + 0x348], 0x18
setne byte [esi + 0x158]
mov byte [esi + 3], al
call fcn.004c2530
mov eax, dword [esi + 0x84]
movzx ecx, byte [esi + 4]
mov byte [eax + 0x1e1], cl
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x40], ecx
mov byte [esi + 3], al
call fcn.004f4cc0
test al, al
je 0x4f9627
mov ecx, dword [esi + 0x2dc]
mov edx, dword [esi + 0x2d8]
mov dword [esi + 0x348], 0x16
push dword [esi + 0x2d4]
call fcn.006b8b50
add esp, 4
movd xmm0, eax
movd xmm1, edx
mov eax, dword [esi + 0x84]
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x7258b0]
mov dword [eax + 0xb0], 1
subpd xmm0, xmmword [0x7258c0]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
movd xmm0, ecx
por xmm0, xmmword [0x7259c0]
subsd xmm0, qword [0x725628]
divsd xmm0, qword [0x725b78]
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [eax + 0xb4], xmm0
push 0x70
lea eax, [esi + 0x1c0]
push eax
push dword [esi + 0x2d0]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x340]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test byte [esi + 0xc0], 1
jne 0x4f96d3
cmp byte [esi + 0xe4], 3
je 0x4f9574
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
call dword [sym.imp.user32.dll_GetActiveWindow]
cmp dword [esi + 0x40], eax
je 0x4f9574
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov edi, dword [ebp + 0x10]
cmp dword [edi + 8], eax
jne 0x4f9a59
movzx ebx, byte [esi + 0xe4]
xor eax, eax
mov edi, dword [esi + 0x40]
mov dword [esi + 0x150], 0x14
test bl, bl
mov dword [esi + 0x154], edi
sete al
xor edx, edx
lea ecx, [eax + 0xe]
neg eax
cmp bl, 2
cmovne edx, ecx
mov dword [esi + 0x158], edx
mov dword [esi + 0x15c], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x160], 0
mov byte [esi + 3], al
lea eax, [esi + 0x150]
push eax
call dword [sym.imp.user32.dll_FlashWindowEx]
jmp 0x4f9574
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0x40]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
call fcn.006fc2a0
mov ecx, eax
mov eax, dword [eax + 0xbc]
test dl, dl
mov dword [esi + 0x40], eax
je 0x4f9909
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
push ecx
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
push dword [esi + 4]
call dword [sym.imp.user32.dll_IsIconic]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
call dword [sym.imp.user32.dll_GetForegroundWindow]
test byte [esi + 0x40], 0x10
je 0x4f9574
cmp dword [esi + 0x30], 0
jne 0x4f9574
cmp dword [esi + 4], eax
je 0x4f9574
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
push 0
push 0x12
call dword [sym.imp.user32.dll_MapVirtualKeyW]
mov dword [esi + 0x150], 1
mov word [esi + 0x154], 0xa4
mov word [esi + 0x156], ax
mov dword [esi + 0x158], 1
mov dword [esi + 0x15c], 0
mov dword [esi + 0x160], 0
mov dword [esi + 0x16c], 1
mov word [esi + 0x170], 0xa4
mov word [esi + 0x172], ax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x174], 3
mov dword [esi + 0x178], 0
mov dword [esi + 0x17c], 0
mov byte [esi + 3], al
push 0x1c
lea eax, [esi + 0x150]
push eax
push 2
call dword [sym.imp.user32.dll_SendInput]
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
push dword [esi + 4]
call dword [sym.imp.user32.dll_SetForegroundWindow]
jmp 0x4f9574
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f90da
mov eax, dword [esi + 0x10]
mov dword [esi + 0x20], ecx
mov byte [esi + 3], al
call fcn.00721f90
mov ecx, dword [esi + 0x20]
test al, al
jne 0x4f90da
mov byte [ecx + 4], 1
jmp 0x4f90da
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f92f5
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov byte [esi + 3], al
call fcn.00721f90
mov ecx, dword [esi + 0x30]
test al, al
jne 0x4f92f5
mov byte [ecx + 4], 1
jmp 0x4f92f5
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f8fd9
mov byte [esi + 0x3b], 1
call fcn.00721f90
test al, al
jne 0x4f8fd9
mov eax, dword [esi + 0x10]
mov byte [eax + 0xc], 1
jmp 0x4f8fd9
xor eax, eax
mov edx, dword [esi + 0x90]
movzx ecx, byte [edx + 0xc]
test cl, cl
je 0x4f86d9
mov ecx, dword [esi + 0xec]
mov dword [esi + 0x348], 0x1c
mov edx, 0x2b
mov dword [esi + 0x150], ecx
mov byte [esi + 0x154], al
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x73e6cc
push 0x73e444
lea eax, [esi + 0x150]
push eax
call fcn.0070a360
add esp, 0xc
jmp 0x4fa439
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f870a
mov byte [esi + 0xb], 1
call fcn.00721f90
test al, al
jne 0x4f870a
mov eax, dword [esi + 0x90]
mov byte [eax + 0xc], 1
jmp 0x4f870a
mov eax, dword [0x919aac]
test eax, 0x7fffffff
je 0x4f96fd
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov byte [esi + 3], al
call fcn.00721f90
mov ecx, dword [esi + 0x30]
test al, al
jne 0x4f96fd
mov byte [ecx + 4], 1
jmp 0x4f96fd
mov ecx, ebx
mov dword [esi + 0x348], 0xffffffff
call fcn.00719150
xor eax, eax
mov ecx, ebx
lock cmpxchg dword [ebx], edi
jne 0x4f78cb
jmp 0x4f78e0
cmp dword [eax], 0
mov dword [esi + 0x10], 1
je 0x4f9988
push dword [eax - 4]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
movaps xmm5, xmmword [esi + 0xd0]
movdqa xmm4, xmmword [esi + 0x40]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
cmp ebx, ecx
je 0x4f76b7
mov edx, ecx
imul edi, ebx, 0x38
mov ecx, eax
sub edx, ebx
jmp 0x4f9a12
imul ecx, dword [esi + 0x10], 0xffffffc8
add ecx, eax
add eax, edi
movsd xmm0, qword [eax + 0x30]
movsd qword [edi + ecx + 0x30], xmm0
movsd xmm0, qword [eax + 0x28]
movsd qword [edi + ecx + 0x28], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [edi + ecx + 0x20], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [edi + ecx + 0x18], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [edi + ecx + 0x10], xmm0
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [edi + ecx + 8], xmm1
movq qword [edi + ecx], xmm0
mov ecx, dword [esi + 4]
mov edx, ebx
add edi, 0x38
dec edx
je 0x4f76b9
mov eax, dword [ecx + 0x40]
mov ebx, edx
mov ecx, dword [eax + edi]
mov edx, dword [eax + edi + 4]
or edx, dword [eax + edi + 0xc]
or ecx, dword [eax + edi + 8]
or ecx, edx
jne 0x4f99b0
inc dword [esi + 0x10]
cmp dword [eax + edi + 0x10], 0
cmp dword [eax + edi + 0x18], 0
je 0x4f9a03
push dword [eax + edi + 0x14]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
movaps xmm5, xmmword [esi + 0xd0]
movdqa xmm4, xmmword [esi + 0x40]
jmp 0x4f9a03
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f9a7c
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa406
mov dword [0x919820], eax
push 8
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4fa406
mov ebx, eax
mov eax, dword [esi + 0x40]
mov dword [ebx], eax
movzx eax, byte [esi + 0xe4]
mov byte [ebx + 4], al
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x4f9ac3
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4fa41d
mov dword [0x919820], eax
push 8
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4fa41d
mov dword [eax], ebx
mov dword [eax + 4], 0x73e668
mov dword [esi + 0x40], eax
mov ecx, 0x919540
mov eax, dword [edi + 0xc]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x10]
mov byte [esi + 3], al
call fcn.006fd340
mov ecx, dword [esi + 0x10]
mov byte [esi + 3], cl
push 0
push dword [esi + 0x40]
push eax
push dword [esi + 4]
call dword [sym.imp.user32.dll_PostMessageW]
test eax, eax
jne 0x4f9574
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x150]
mov edx, 0x8f7c84
mov dword [esi + str.PostMessage_failed__is_the_messages_queue_full_], 0x8f7c7c
mov dword [esi + 0x154], 1
mov dword [esi + 0x160], 0
mov dword [esi + 0x158], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x15c], 0
mov byte [esi + 3], al
call fcn.00709f70
jmp 0x4fa439
mov ecx, edi
call fcn.007188f0
jmp 0x4f584b
mov ecx, edi
mov dword [esi + 0x348], 0xffffffff
call fcn.00719150
jmp 0x4f5906
mov eax, dword [0x919aa8]
cmp eax, 2
mov eax, dword [esi + 4]
jb 0x4f9cc7
mov eax, dword [0x91975c]
mov ecx, str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
lea edx, [esi + 0x1c0]
mov dword [esi + str.Failed_to_create_HICON__for_big_icon__from_embedded_png_data.], 0x7404cc
mov dword [esi + 0x1f0], 1
mov dword [esi + 0x1f4], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x1f8], 0
mov dword [esi + 0x1fc], 0
mov dword [esi + 0x1e0], 2
mov dword [esi + 0x1e4], str.eframe::native::app_iconC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001feframe_0.22.0_src_native_app_icon.rs
mov dword [esi + 0x1e8], 0x18
mov dword [esi + 0x1c8], 0
mov dword [esi + 0x1d0], 0x18
mov dword [esi + 0x1cc], str.eframe::native::app_iconC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001feframe_0.22.0_src_native_app_icon.rs
mov dword [esi + 0x1d4], 0
mov dword [esi + 0x1dc], 0x6e
mov dword [esi + 0x1d8], 0x7404ec
mov dword [esi + 0x1c0], 1
mov dword [esi + 0x1c4], 0x98
cmp eax, 2
mov eax, 0x8b82b8
cmove eax, dword [0x9192e0]
cmove ecx, dword [str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs]
push edx
push ecx
call dword [eax + 0x14]
add esp, 8
mov eax, dword [esi + 0x154]
jmp 0x4f9cc7
mov eax, dword [0x919aa8]
cmp eax, 2
jb 0x4f9cc4
mov dword [esi + str.Failed_to_create_HICON__for_small_icon__from_embedded_png_data.], 0x7405b4
mov dword [esi + 0x1c4], 1
mov dword [esi + 0x1d0], 0
mov dword [esi + 0x1c8], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x1cc], 0
lea ecx, [esi + 0x1c0]
mov edx, 2
push 0xab
push 0x74055c
call fcn.005ebce0
add esp, 8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5198
push dword [esi + 0x150]
jmp 0x4f518a
mov ebx, dword [esi + 0xd0]
test ecx, ecx
jne 0x4f9e66
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x90]
mov dword [esi + 0xcc], ebx
mov dword [esi + 0x348], 0x13
mov dword [esi + 0xc8], eax
mov dword [esi + 0xc4], ecx
call fcn.00425040
jmp 0x4fa439
mov eax, dword [esi + 0x88]
lea ecx, [esi + 0x1c0]
mov edx, 0x8ccaa0
mov dword [esi + str.Index_out_of_bounds], 0x8cca38
mov dword [esi + 0x1c4], 1
mov dword [esi + 0x1d0], 0
mov dword [esi + 0x1c8], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x1cc], 0
mov dword [esi + 0xb8], edi
mov dword [esi + 0x348], 0xe
mov dword [esi + 0xbc], eax
call fcn.00709f70
jmp 0x4fa439
mov eax, dword [esi + 0x88]
lea ecx, [esi + 0x1c0]
mov edx, 0x8ccab0
mov dword [esi + str.Index_out_of_bounds], 0x8cca38
mov dword [esi + 0x1c4], 1
mov dword [esi + 0x1d0], 0
mov dword [esi + 0x1c8], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x1cc], 0
mov dword [esi + 0xb8], edi
mov dword [esi + 0x348], 0xe
mov dword [esi + 0xbc], eax
call fcn.00709f70
jmp 0x4fa439
mov ecx, dword [esi + 0x88]
mov eax, dword [esi + 0x60]
mov dword [esi + 0x348], 0xe
mov edx, edi
mov dword [esi + 0xbc], ecx
mov ecx, dword [esi + 0xe8]
mov dword [esi + 0xb8], eax
push 0x8ccac0
call fcn.0070a2f0
add esp, 4
jmp 0x4fa439
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x348], 0xe
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xb8], eax
mov ecx, edi
push 0x8ccac0
call fcn.0070a080
add esp, 4
jmp 0x4fa439
mov edx, dword [esi + 0x240]
mov dword [esi + 0x348], 0x13
call fcn.00709d20
jmp 0x4fa439
mov edx, dword [esi + 0x240]
mov eax, dword [esi + 0x100]
mov edi, dword [esi + 0x90]
mov dword [esi + 0xcc], ebx
mov dword [esi + 0x348], 0x13
mov dword [esi + 0xc8], eax
mov dword [esi + 0xc4], edi
call fcn.00709d20
jmp 0x4fa439
mov dword [esi + 0x348], 0xc
mov edx, edi
push 0x89c880
call fcn.0070a2f0
add esp, 4
jmp 0x4fa439
mov edx, dword [esi + 0xd0]
mov dword [esi + 0x348], 0xc
mov ecx, edi
push 0x89c880
call fcn.0070a080
add esp, 4
jmp 0x4fa439
mov eax, dword [esi + 0x88]
mov dword [esi + 0xb8], edi
mov dword [esi + 0x348], 0xe
mov ecx, str.assertion_failed:_end___start__end___len_
mov edx, 0x2c
mov dword [esi + 0xbc], eax
push 0x8ccb3c
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x348], 0xe
mov edx, 0x2b
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xb8], eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
push 0x8ccaf0
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
mov edx, dword [esi + 0x10]
mov ecx, 1
mov dword [esi + 0x348], 5
call fcn.00709d20
jmp 0x4fa439
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x70]
mov edx, dword [esi + 0xac]
mov dword [esi + 0xb8], edi
mov dword [esi + 0xbc], eax
push 0x8ccb00
call fcn.0070a2f0
add esp, 4
jmp 0x4fa439
mov dword [esi + 0x348], 5
call fcn.00425040
jmp 0x4fa439
mov edx, dword [esi + 0x10]
mov ecx, 1
mov dword [esi + 0x348], 4
call fcn.00709d20
jmp 0x4fa439
mov edx, dword [esi + 0x88]
mov ebx, eax
mov dword [esi + 0xb8], edi
mov dword [esi + 0x348], 0xe
mov dword [esi + 0xbc], edx
mov edx, ebx
push 0x8cca90
call fcn.0070a2f0
add esp, 4
jmp 0x4fa439
mov edx, dword [esi + 0x88]
mov dword [esi + 0xb8], edi
mov ecx, eax
mov dword [esi + 0x348], 0xe
mov dword [esi + 0xbc], edx
mov edx, dword [esi + 0xb0]
push 0x8cca90
call fcn.0070a080
add esp, 4
jmp 0x4fa439
ud2
mov dword [esi + 0x348], 4
call fcn.00425040
jmp 0x4fa439
mov byte [esi + 3], 1
mov ecx, 0x8f6daf
mov edx, 0x35
push 0x743e50
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
mov byte [esi + 3], 1
mov ecx, 0x8f6daf
mov edx, 0x35
push 0x7407f8
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
mov eax, dword [esi + 0x10]
mov ecx, 0x8f6daf
mov edx, 0x35
mov byte [esi + 3], al
push 0x8f6e48
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
call sub.kernel32.dll_GetLastError
mov dword [esi + 0x1c4], eax
mov dword [esi + 0x1c0], 0
mov dword [esi + 0x348], 0
lea eax, [esi + 0x1c0]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x8c9fc8
push 0x8c7c18
push eax
call fcn.0070a360
add esp, 0xc
jmp 0x4fa439
lea ecx, [esi + 0x1c0]
mov edx, 0x743e40
mov dword [esi + str.Unexpected_GetClientRect_failure:_please_report_this_error_to_https:__github.com_rust_windowing_winit], 0x743e38
mov dword [esi + 0x1c4], 1
mov dword [esi + 0x1d0], 0
mov dword [esi + 0x1c8], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x1cc], 0
call fcn.00709f70
ud2
mov dword [esi + 0x348], 6
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x740994
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
mov dword [esi + 0x348], 6
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x8ccad0
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
mov dword [esi + 0x348], 0xd
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x8ccae0
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
mov dword [esi + 0x348], 3
call fcn.00425040
jmp 0x4fa439
mov dword [esi + 0x348], 3
call fcn.00425040
jmp 0x4fa439
mov dword [esi + 0x348], 0xb
mov ecx, str.assertion_failed:_x__w___self.width__
mov edx, 0x27
push 0x89c8f0
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
mov dword [esi + 0x348], 0xb
mov ecx, str.assertion_failed:_y__h___self.height__
mov edx, 0x28
push 0x89c8b8
call fcn.0070a0f0
add esp, 4
jmp 0x4fa439
lea eax, [esi + 0x1c0]
mov dword [esi + 0x1c0], 0
mov dword [esi + 0x348], 0xc
lea ecx, [esi + 0x2a8]
lea edx, [esi + 0x238]
push eax
call fcn.00712e20
add esp, 4
jmp 0x4fa439
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0xd0]
mov dword [esi + 0x348], 0xb
call fcn.00709d20
jmp 0x4fa439
mov ecx, 4
mov edx, 0xdc
mov byte [esi + 0x6b], 0
mov byte [esi + 0x6c], 1
mov dword [esi + 0x348], 0x26
call fcn.00709d20
jmp 0x4fa439
mov ecx, 4
mov edx, 0xc
mov dword [esi + 0x348], 0x1d
call fcn.00709d20
jmp 0x4fa439
mov ecx, 4
mov edx, 8
mov dword [esi + 0x10], ebx
mov dword [esi + 0x348], 0x1b
call fcn.00709d20
jmp 0x4fa439
mov ecx, 4
mov edx, 0xc
mov dword [esi + 0x348], 0x21
call fcn.00709d20
jmp 0x4fa439
mov ecx, 4
mov edx, 8
mov dword [esi + 0x40], ebx
mov dword [esi + 0x348], 0x20
call fcn.00709d20
jmp 0x4fa439
mov dword [esi + 0x348], 0xb
call fcn.00425040
jmp 0x4fa439
mov dword [esi + 0x348], 0xb
call fcn.00425040
jmp 0x4fa439
lea ecx, [esi + 0x150]
mov edx, 0x8f7c84
mov dword [esi + str.PostMessage_failed__is_the_messages_queue_full_], 0x8f7c7c
mov dword [esi + 0x154], 1
mov dword [esi + 0x160], 0
mov dword [esi + 0x158], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x15c], 0
mov byte [esi + 0xb], 0
call fcn.00709f70
jmp 0x4fa439
lea ecx, [esi + 0x150]
mov edx, 0x8f7c84
mov dword [esi + str.PostMessage_failed__is_the_messages_queue_full_], 0x8f7c7c
mov dword [esi + 0x154], 1
mov dword [esi + 0x160], 0
mov dword [esi + 0x158], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x15c], 0
mov byte [esi + 0x2b], 0
call fcn.00709f70
jmp 0x4fa439
mov ecx, 1
mov edx, 0x10
call fcn.00709d20
ud2
mov dword [esi + 0x348], 0xb
call fcn.00425040
jmp 0x4fa439
mov dword [esi + 0x348], 0xb
call fcn.00425040
jmp 0x4fa439
call fcn.00425040
ud2
mov eax, dword [esi + 0x10]
mov ecx, 4
mov edx, 8
mov byte [esi + 3], al
call fcn.00709d20
jmp 0x4fa439
mov ecx, 4
mov edx, 8
mov dword [esi + 0x40], ebx
mov dword [esi + 0x348], 0x19
call fcn.00709d20
ud2