Function at 0x459738
Capabilities:
Resolve function by parsing pe exports
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x950
mov esi, esp
mov dword [esi + 0x938], ebp
lea eax, [esi + 0x940]
mov ebx, ecx
call 0x45975c
pop edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x62c0e0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
mov eax, dword [ebx]
xor eax, 2
or eax, dword [ebx + 4]
jne 0x45978e
mov ecx, 0x3b9aca00
jmp 0x45ce96
lea ecx, [ebx + 0x228]
mov dword [esi + 0xc], edx
call fcn.0045dd96
mov ecx, dword [eax + 4]
mov dword [esi + 0x8c], eax
call fcn.0045e4ac
movq xmm4, qword [0x6461f8]
movd xmm3, eax
movsd xmm1, qword [0x6463c0]
movsd xmm2, qword [0x6463c8]
xorpd xmm0, xmm0
mov dword [esi + 4], ebx
por xmm3, xmm4
subsd xmm3, xmm4
maxsd xmm3, xmm0
minsd xmm3, xmm1
cvttsd2si eax, xmm3
subsd xmm3, xmm2
cvttsd2si edi, xmm3
movd xmm3, edx
mov ecx, eax
por xmm3, xmm4
sar ecx, 0x1f
subsd xmm3, xmm4
and edi, ecx
maxsd xmm3, xmm0
or edi, eax
minsd xmm3, xmm1
mov dword [esi + 0x6c], edi
cvttsd2si eax, xmm3
subsd xmm3, xmm2
mov ecx, eax
cvttsd2si edi, xmm3
sar ecx, 0x1f
and edi, ecx
mov ecx, dword [ebx + 0x21c]
or edi, eax
mov eax, dword [ebx + 0x3d0]
mov dword [esi], eax
add eax, 8
mov dword [esi + 0x50], eax
mov eax, dword [ebx + 0x3c8]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x3cc]
mov dword [esi + 0x10], eax
call fcn.0048106a
mov dword [esi + 0x1d8], eax
add eax, 0xac
lea ecx, [esi + 0x498]
push eax
push dword [esi + 0x18]
push ecx
mov eax, dword [esi + 0x10]
call dword [eax + 0x24]
add esp, 0xc
mov ebx, dword [esi + 0x50]
mov edx, 0xc11
mov ecx, ebx
call fcn.004be7a5
sub esp, 0xc
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x90], edi
mov dword [esp + 8], edi
mov edi, dword [esi]
and dword [esp], 0
mov ecx, ebx
xor edx, edx
mov dword [esp + 4], eax
call fcn.004beadf
add esp, 0xc
lea eax, [esi + 0x498]
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
movss xmm3, dword [eax + 0xc]
mov eax, dword [edi + 0x124]
test eax, eax
je 0x45d0b5
sub esp, 0x10
movss dword [esp + 0xc], xmm3
movss dword [esp + 8], xmm2
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call eax
mov eax, dword [edi + 0x108]
test eax, eax
je 0x45d0bf
push 0x4000
call eax
lea ecx, [esi + 0x1d8]
call fcn.0041a65f
mov ebx, dword [esi + 4]
lea ecx, [esi + 0x498]
mov edx, ebx
push dword [esi + 0x8c]
push dword [ebx + 0x3cc]
push dword [ebx + 0x3c8]
call fcn.0045e502
add esp, 0xc
lea eax, [esi + 0x8b8]
lea edi, [esi + 0x4c0]
push 0x40
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [edi + 0x50]
mov edx, dword [edi + 0x48]
movss xmm0, dword [edi + 0x6c]
mov eax, dword [edi + 0x40]
mov dword [esi + 0x28], ecx
mov ecx, dword [edi + 0x58]
mov dword [esi + 8], edx
mov edx, dword [edi + 0x54]
movss dword [esi + 0x68], xmm0
movss xmm0, dword [edi + 0x70]
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x44]
mov dword [esi + 0x70], ecx
mov ecx, dword [edi + 0x60]
mov dword [esi + 0x34], edx
mov edx, dword [edi + 0x5c]
movss dword [esi + 0x94], xmm0
movsd xmm0, qword [edi - 8]
mov dword [esi + 0xf0], eax
mov al, byte [edi + 0x4c]
mov dword [esi + 0x30], ecx
mov ecx, dword [edi + 0x68]
mov dword [esi + 0x48], edx
mov edx, dword [edi + 0x64]
movsd qword [esi + 0x400], xmm0
movsd xmm0, qword [edi - 0x10]
mov byte [esi + 0x10], al
mov al, byte [edi + 0x74]
mov dword [esi + 0x18], ecx
mov ecx, dword [edi - 0x24]
mov dword [esi + 0x44], edx
mov edx, dword [edi - 0x28]
movsd qword [esi + 0x3f8], xmm0
movsd xmm0, qword [edi - 0x18]
mov byte [esi + 0x50], al
mov dword [esi + 0xf8], ecx
mov ecx, dword [edi + 0x78]
mov dword [esi + 0xfc], edx
mov edx, dword [edi - 0x20]
movsd qword [esi + 0x3f0], xmm0
mov dword [esi + 0x40], ecx
mov ecx, dword [edi + 0x80]
mov dword [esi + 0xf4], edx
mov edx, dword [edi + 0x7c]
mov dword [esi], ecx
mov ecx, dword [ebx + 0x21c]
mov dword [esi + 0x98], edx
call fcn.0048a16d
movss dword [ebx + 0xa4], xmm0
mov dl, byte [esi + 0x50]
mov al, byte [ebx + 0xaf]
cmp al, 0x23
je 0x459a20
cmp al, dl
je 0x459ada
mov ecx, dword [esi + 4]
cmp dword [ecx + 0x98], 0
je 0x459a8a
mov edi, dword [esi + 0xc]
movzx eax, dl
mov byte [ecx + 0xaf], dl
add edi, dword [eax*4 + 0x45d1dc]
jmp edi
mov byte [ecx + 0xaf], 0x23
jmp 0x459ada
cmp byte [esi + 0x10], 2
je 0x45a897
push 6
pop ecx
mov dword [esi + 0x100], ecx
call fcn.0056f157
mov dword [esi + 0x10], edx
lea edx, [esi + 0x320]
mov edi, dword [esi + 8]
mov dword [eax], 0x616c625f
mov word [eax + 4], 0x6b6e
mov dword [esi + 0x50], eax
lea ecx, [esi + 0x498]
and dword [edx + 0x10], 0
and dword [edx], 0
and dword [edx + 8], 0
push edi
mov ebx, dword [esi + 0x38]
push ebx
call fcn.0061d102
pop eax
pop ecx
lea eax, [esi + 0x498]
cmp dword [eax], 2
jne 0x459b46
lea ecx, [esi + 0x1d8]
mov edx, ebx
push edi
call fcn.0062122c
pop eax
jmp 0x459ba9
mov edi, dword [esi + 0x4ac]
mov eax, dword [esi + 0x4b0]
mov edx, dword [esi + 0x4b4]
mov dword [esi + 0xc], eax
mov ecx, edi
push 0xa380f0
push dword [esi + 0x4b8]
call fcn.0057a797
pop ecx
pop ecx
cmp edx, 1
jne 0x459b91
lea ecx, [esi + 0x1d8]
mov edx, ebx
push dword [esi + 8]
call fcn.0062122c
pop eax
mov edx, dword [esi + 0xc]
mov ecx, edi
call fcn.0043cca3
jmp 0x459ba9
push 0x48
lea eax, [esi + 0x498]
push eax
lea eax, [esi + 0x1d8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esi + 0x1d8]
cmp edi, 2
jne 0x459bd7
mov ebx, dword [esi + 0x1dc]
mov eax, dword [esi + 0x1e0]
lea edi, [esi + 0x1d8]
mov dword [esi + 0x114], eax
mov dword [esi + 0x110], ebx
jmp 0x45a800
lea eax, [esi + 0x1e4]
lea ebx, [esi + 0x42c]
mov ecx, dword [eax - 8]
mov edx, dword [eax - 4]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
push 0x3c
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [ebx - 0xc], edi
mov dword [ebx - 4], eax
mov eax, dword [esi + 8]
mov dword [ebx - 8], eax
mov eax, dword [0xa7101c]
cmp eax, 4
jbe 0x459c44
lea ecx, [esi + 0x498]
mov dword [ecx], str.trying_to_figure_out_default_browser_command
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
push 5
pop edx
push 0xa38198
call fcn.00565e75
pop eax
push 0x400
push 0
lea edi, [esi + 0x498]
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esi + 0xb0]
mov dword [eax], 0x200
push eax
push edi
push 0
push 0xa381b4
push 1
push 0x1000
call dword [sym.imp.shlwapi.dll_AssocQueryStringW]
test eax, eax
lea edi, [esi + 0x1d8]
je 0x459ca2
lea ecx, [esi + 0x110]
push 0x27
pop edx
push 0x1d
push str.failed_to_get_default_browser
call fcn.00620a89
pop eax
pop ecx
jmp 0x45a7e9
mov eax, dword [esi + 0xb0]
dec eax
cmp eax, 0x201
jae 0x45d1a3
lea ebx, [esi + 0x1d8]
lea edx, [esi + 0x498]
mov ecx, ebx
push eax
call fcn.005e0460
pop eax
lea edi, [esi + 0x320]
mov edx, ebx
mov ecx, edi
call fcn.005f76c0
cmp byte [edi + 0xc], 2
mov ebx, dword [edi]
mov edi, dword [edi + 4]
jne 0x459e84
mov eax, dword [esi + 0x328]
test ebx, ebx
mov dword [esi + 0x110], ebx
mov dword [esi + 0x114], edi
mov dword [esi + 0x118], eax
je 0x459ea4
mov eax, dword [esi + 0x114]
mov edi, dword [esi + 0x118]
mov dword [esi + 0x1b0], ebx
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1b4], eax
mov eax, dword [0xa7101c]
cmp eax, 4
jbe 0x459d82
lea eax, [esi + 0x320]
lea edi, [esi + 0x1b0]
lea ecx, [esi + 0x498]
lea edx, [esi + 0x1d8]
mov dword [esi + 0x1d8], eax
mov dword [eax], edi
xor eax, eax
mov dword [ecx], 0xa38208
mov dword [esi + 0x1dc], 0x43bd0c
inc eax
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
push 5
pop edx
push 0xa38210
call fcn.00565e75
pop eax
mov ebx, dword [edi]
mov edi, dword [edi + 8]
mov ecx, ebx
mov edx, edi
push 0x22
call fcn.004ec45d
pop ecx
test al, al
mov dword [esi + 0x2c], edi
jne 0x459ec7
mov eax, ebx
add ebx, edi
lea ecx, [esi + 0x1d8]
mov dword [ecx], eax
mov dword [ecx + 4], ebx
and dword [ecx + 8], 0
mov edi, eax
mov dword [esi + 0x4c], eax
lea ecx, [esi + 0x1d8]
call fcn.00495239
test eax, eax
je 0x459ec1
cmp edx, 0x110000
je 0x459ec1
mov eax, dword [esi + 0x1e0]
mov ecx, dword [esi + 0x1dc]
add ebx, eax
add edi, ecx
sub ebx, edi
mov edi, dword [esi + 0x1d8]
add ebx, edi
cmp edx, 0x20
mov dword [esi + 8], edi
mov dword [esi + 0x1e0], ebx
mov ebx, ecx
jne 0x459db1
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x4c]
mov dword [esi + 0x24], ecx
mov ecx, ebx
mov edx, edi
push 0xa38270
push eax
mov dword [esi + 0x88], eax
call fcn.0057a797
pop ecx
pop ecx
mov dword [esi + 0xc], edx
lea ecx, [esi + 0x498]
mov edx, eax
push dword [esi + 0xc]
call fcn.00620a3d
pop eax
mov eax, dword [esi + 0x498]
xor eax, 2
or eax, dword [esi + 0x49c]
jne 0x45a70d
cmp byte [esi + 0x4a0], 3
jne 0x459e79
mov ebx, dword [esi + 0x4a4]
mov eax, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [esi + 0xc], eax
push eax
call dword [edi]
add esp, 4
mov edx, dword [edi + 8]
mov ecx, dword [esi + 0xc]
push dword [edi + 4]
call fcn.00402161
pop eax
mov ecx, ebx
push 4
pop edx
call fcn.00404240
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x24]
jmp 0x459db1
lea ecx, [esi + 0x114]
push 0x27
pop edx
push 0x43
push str.The_default_web_browser_command_contains_invalid_unicode_characters
call fcn.00620a89
pop eax
pop ecx
mov ecx, ebx
mov edx, edi
call fcn.0043cca3
mov eax, dword [esi + 0x114]
mov ecx, dword [esi + 0x118]
mov dword [esi + 0x114], ecx
mov dword [esi + 0x110], eax
jmp 0x45a7e3
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x4c]
mov ecx, edi
call fcn.0056f157
mov ecx, ebx
mov ebx, eax
mov edi, edx
push dword [esi + 0x2c]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x2f0], ebx
mov dword [esi + 0x2f4], edi
mov dword [esi + 0x2f8], ecx
lea eax, [esi + 0x420]
lea edx, [esi + 0x898]
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x2c], ecx
mov dword [esi + 0xc], 0
mov dword [edx], eax
lea edx, [esi + 0x498]
lea eax, [ebx + ecx]
mov dword [edx], ebx
mov dword [edx + 4], eax
lea eax, [esi + 0xb0]
xor ebx, ebx
mov dword [eax], 4
and dword [eax + 4], 0
and dword [eax + 8], 0
mov dword [esi + 8], 0
lea ecx, [esi + 0x498]
mov edi, ebx
call fcn.00495239
test eax, eax
je 0x45a024
cmp edx, 0x110000
je 0x45a024
cmp edx, 0x20
jne 0x459fa8
cmp byte [esi + 8], 0
lea ebx, [edi + 1]
jne 0x459f3c
cmp dword [esi + 0xc], 1
jne 0x459f3c
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x2c]
push 0xa38308
push edi
push dword [esi + 0x24]
call fcn.005c8338
add esp, 0xc
mov edi, edx
lea ecx, [esi + 0xb0]
lea edx, [esi + 0x898]
push edi
push eax
call fcn.00621026
pop eax
pop ecx
mov dword [esi + 0xc], 0
jmp 0x459f3c
cmp edx, 0x22
jne 0x459fc9
cmp dword [esi + 0xc], 0
mov ecx, dword [esi + 0x4c]
jne 0x459fea
lea eax, [edi + 1]
mov dword [esi + 0x24], eax
mov al, 1
mov dword [esi + 8], eax
xor eax, eax
inc eax
mov dword [esi + 0xc], eax
jmp 0x459fe2
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x24]
mov edx, 1
test ecx, ecx
cmove eax, edi
cmove ecx, edx
mov dword [esi + 0x24], eax
mov dword [esi + 0xc], ecx
inc edi
mov ebx, edi
jmp 0x459f3c
mov edx, dword [esi + 0x2c]
push 0xa38318
push edi
inc edi
push dword [esi + 0x24]
call fcn.005c8338
add esp, 0xc
mov ebx, edx
lea ecx, [esi + 0xb0]
lea edx, [esi + 0x898]
push ebx
push eax
call fcn.00621026
pop eax
pop ecx
mov dword [esi + 0xc], 0
mov ebx, edi
jmp 0x459f35
cmp dword [esi + 0xc], 0
je 0x45a058
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x2c]
push 0xa38328
push edi
push dword [esi + 0x24]
call fcn.005c8338
add esp, 0xc
mov edi, edx
lea ecx, [esi + 0xb0]
lea edx, [esi + 0x898]
push edi
push eax
call fcn.00621026
pop eax
pop ecx
cmp dword [esi + 0xb8], 0
je 0x45a0a7
mov eax, dword [esi + 0xb0]
mov edi, dword [eax + 8]
mov ecx, dword [eax]
test edi, edi
je 0x45a198
setns al
mov dword [esi + 8], ecx
js 0x45d0ae
movzx edx, al
mov al, byte [0xa71040]
mov ecx, edi
mov dword [esi + 0xc], edx
call fcn.004041e0
mov ecx, dword [esi + 8]
mov ebx, eax
test eax, eax
jne 0x45a19b
mov ecx, dword [esi + 0xc]
jmp 0x45b535
lea ecx, [esi + 0x1dc]
xor edx, edx
push 0xf
push 0xa382a0
call fcn.00620a89
pop eax
pop ecx
jmp 0x45a353
xor ebx, ebx
inc ebx
push edi
push ecx
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 0x4b0], ebx
mov dword [esi + 0x4b4], edi
mov dword [esi + 0x4b8], edi
mov byte [esi + 0x4bc], 0
mov dword [esi + 0x4e0], 4
and dword [esi + 0x4e4], 0
and dword [esi + 0x4e8], 0
and dword [esi + 0x4c0], 0
and dword [esi + 0x4c8], 0
and word [esi + 0x4cc], 0
mov byte [esi + 0x4dc], 2
and dword [esi + 0x4ec], 0
and word [esi + 0x4f0], 0
push 5
pop eax
mov dword [esi + 0x498], eax
mov dword [esi + 0x4a0], eax
mov dword [esi + 0x4a8], eax
mov eax, dword [esi + 0xb8]
cmp eax, 1
jbe 0x45a32f
mov ecx, dword [esi + 0xb0]
imul eax, eax, 0xc
xor edi, edi
add eax, 0xfffffff4
add ecx, 0x14
push 4
pop edx
test eax, eax
mov dword [esi + 0x2c], edx
je 0x45a32f
mov edx, dword [ecx]
mov dword [esi + 0x100], eax
mov eax, dword [ecx - 8]
mov dword [esi + 8], edi
mov edi, 1
mov dword [esi + 0xc], ecx
test edx, edx
je 0x45a28f
mov dword [esi + 0x24], eax
js 0x45d0ae
mov ebx, edx
mov al, byte [0xa71040]
mov ecx, edx
mov edi, edx
not ebx
shr ebx, 0x1f
mov edx, ebx
call fcn.004041e0
mov edx, edi
mov edi, eax
test eax, eax
mov eax, dword [esi + 0x24]
je 0x45d10d
push edx
push eax
push edi
mov ebx, edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 0x114], edi
mov edi, dword [esi + 8]
mov dword [esi + 0x118], ebx
mov dword [esi + 0x11c], ebx
mov byte [esi + 0x120], 0
and dword [esi + 0x110], 0
cmp edi, dword [esi + 0x4e4]
jne 0x45a2e9
and dword [esi + 0x948], 0
lea ecx, [esi + 0x4e0]
mov edx, edi
call fcn.005f7880
mov edx, dword [esi + 0x4e0]
mov edi, dword [esi + 0x4e8]
jmp 0x45a2ec
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0x120]
imul eax, edi, 0x14
inc edi
mov dword [edx + eax + 0x10], ecx
mov ecx, dword [esi + 0xc]
movsd xmm0, qword [esi + 0x110]
movsd xmm1, qword [esi + 0x118]
add ecx, 0xc
movsd qword [edx + eax + 8], xmm1
movsd qword [edx + eax], xmm0
mov eax, dword [esi + 0x100]
mov dword [esi + 0x4e8], edi
add eax, 0xfffffff4
jmp 0x45a23b
push 0x5c
lea eax, [esi + 0x498]
push eax
lea eax, [esi + 0x1d8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x1d8]
mov dword [esi + 0x100], eax
mov edi, dword [esi + 0xb0]
mov ebx, dword [esi + 0xb8]
add edi, 4
sub ebx, 1
jb 0x45a376
mov ecx, dword [edi - 4]
mov edx, dword [edi]
call fcn.0043cca3
add edi, 0xc
jmp 0x45a362
mov eax, dword [esi + 0xb4]
test eax, eax
je 0x45a393
mov ecx, dword [esi + 0xb0]
imul eax, eax, 0xc
push 4
pop edx
push eax
call fcn.00402161
pop eax
mov ebx, dword [esi + 0x100]
cmp ebx, 6
jne 0x45a3bb
mov eax, dword [esi + 0x1dc]
mov ecx, dword [esi + 0x1e0]
mov dword [esi + 0x114], ecx
mov dword [esi + 0x110], eax
jmp 0x45a7c4
mov ecx, dword [esi + 0x1dc]
mov edx, dword [esi + 0x1e0]
lea edi, [esi + 0x32c]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
push 0x50
lea eax, [esi + 0x1e4]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [edi - 0xc], ebx
lea ebx, [esi + 0x320]
mov dword [esi + 0xb0], ebx
mov dword [edi - 4], eax
mov eax, dword [esi + 8]
mov dword [edi - 8], eax
mov eax, dword [0xa7101c]
cmp eax, 4
jb 0x45a45e
lea eax, [esi + 0x110]
lea ecx, [esi + 0xb0]
lea edx, [esi + 0x1d8]
mov dword [eax], ecx
mov dword [esi + 0x1d8], eax
xor eax, eax
lea ecx, [esi + 0x498]
mov dword [esi + 0x1dc], 0x620af2
inc eax
mov dword [ecx], 0xa3835c
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
push 4
pop edx
push 0xa38364
call fcn.00565e75
pop eax
mov ebx, dword [esi + 0xb0]
mov eax, dword [ebx]
cmp eax, 5
push 0x27
pop ecx
ja 0x45cee6
bt ecx, eax
jae 0x45cee6
mov dword [ebx], 1
mov eax, dword [ebx + 8]
cmp eax, 5
ja 0x45cef7
bt ecx, eax
jae 0x45cef7
mov dword [ebx + 8], 1
mov eax, dword [ebx + 0x10]
cmp eax, 5
ja 0x45cf08
bt ecx, eax
jae 0x45cf08
lea edi, [esi + 0x498]
mov edx, ebx
mov dword [ebx + 0x10], 1
mov ecx, edi
call fcn.005e9aa0
mov ebx, dword [edi + 8]
cmp ebx, 2
jne 0x45a4e7
mov eax, dword [esi + 0x498]
mov ecx, dword [esi + 0x49c]
mov dword [esi + 0x110], eax
mov dword [esi + 0x114], ecx
jmp 0x45a580
mov eax, dword [esi + 0x4a4]
movsd xmm0, qword [esi + 0x498]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x4a8]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x4ac]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x4b0]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x4b4]
mov dword [esi + 0x2c], eax
sub esp, 4
mov edi, dword [sym.imp.kernel32.dll_CloseHandle]
movss dword [esp], xmm0
shufps xmm0, xmm0, 0x55
movaps xmmword [esi + 0x100], xmm0
call edi
sub esp, 4
movaps xmm0, xmmword [esi + 0x100]
movss dword [esp], xmm0
call edi
test ebx, ebx
je 0x45a55b
push dword [esi + 0x88]
call dword [sym.imp.kernel32.dll_CloseHandle]
cmp dword [esi + 0xc], 0
je 0x45a56a
push dword [esi + 0x24]
call dword [sym.imp.kernel32.dll_CloseHandle]
cmp dword [esi + 8], 0
je 0x45a579
push dword [esi + 0x2c]
call dword [sym.imp.kernel32.dll_CloseHandle]
mov byte [esi + 0x110], 4
mov ecx, dword [esi + 0x338]
mov edx, dword [esi + 0x33c]
call fcn.0043cca3
mov edi, dword [esi + 0x368]
mov ebx, dword [esi + 0x370]
add edi, 8
sub ebx, 1
jb 0x45a5b4
mov ecx, dword [edi - 4]
mov edx, dword [edi]
call fcn.0043cca3
add edi, 0x14
jmp 0x45a5a0
mov eax, dword [esi + 0x36c]
test eax, eax
je 0x45a5d1
mov ecx, dword [esi + 0x368]
imul eax, eax, 0x14
push 4
pop edx
push eax
call fcn.00402161
pop eax
mov eax, dword [esi + 0x348]
xor edx, edx
test eax, eax
je 0x45a5f1
mov ebx, dword [esi + 0x34c]
mov ecx, dword [esi + 0x350]
xor edi, edi
inc edi
jmp 0x45a6e9
xor edi, edi
xor ecx, ecx
jmp 0x45a6e9
test edi, edi
je 0x45a611
test edx, edx
jne 0x45a611
mov edx, eax
sub ebx, 1
jb 0x45a61d
mov edx, dword [edx + 0x1ec]
jmp 0x45a604
test edi, edi
mov dword [esi + 8], edi
jne 0x45a627
jmp 0x45d17b
xor ebx, ebx
xor eax, eax
inc eax
mov dword [esi + 8], eax
xor eax, eax
mov edi, edx
mov dword [esi + 0xc], ecx
movzx ecx, word [edi + 0x1ea]
cmp ebx, ecx
jb 0x45a662
lea ecx, [esi + 0x498]
mov edx, edi
push eax
call fcn.006209e4
pop eax
mov edi, dword [esi + 0x498]
test edi, edi
je 0x45d039
mov eax, dword [esi + 0x49c]
mov ebx, dword [esi + 0x4a0]
jmp 0x45a62c
lea ecx, [ebx + 1]
test eax, eax
je 0x45a687
lea ecx, [edi + ecx*4 + 0x1ec]
mov edx, dword [ecx]
dec eax
lea ecx, [edx + 0x1ec]
jne 0x45a670
mov dword [esi + 0x2c], edx
mov dword [esi + 0x24], 0
jmp 0x45a68d
mov dword [esi + 0x24], ecx
mov dword [esi + 0x2c], edi
imul eax, ebx, 0x1c
mov ecx, dword [edi + eax + 0xc0]
mov edx, dword [edi + eax + 0xc4]
mov dword [esi + 0x100], eax
call fcn.0043cca3
mov ecx, dword [esi + 0x100]
mov eax, dword [edi + ecx + 0xb8]
test eax, eax
je 0x45a6cf
lea ecx, [edi + ecx + 0xb4]
add eax, eax
mov ecx, dword [ecx]
push 2
pop edx
push eax
call fcn.00402161
pop eax
shl ebx, 4
add edi, ebx
mov ecx, edi
call fcn.0047daba
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x24]
xor eax, eax
sub ecx, 1
jae 0x45a5fa
test edi, edi
je 0x45a796
test edx, edx
jne 0x45a775
mov edx, eax
sub ebx, 1
jb 0x45a773
mov edx, dword [edx + 0x1ec]
jmp 0x45a700
mov eax, dword [esi + 0x88]
test eax, eax
je 0x459ec7
mov ecx, ebx
mov edx, edi
push 0xa38280
push eax
call fcn.0057a797
mov ecx, dword [esi + 0x88]
add esp, 8
mov dword [esi + 0x110], eax
mov eax, edi
mov dword [esi + 0x114], edx
sub eax, ecx
jbe 0x45cf16
cmp byte [ebx + ecx], 0xbf
lea ecx, [esi + 0x320]
jg 0x45cf22
mov ecx, ebx
mov edx, edi
push 0xa38290
push edi
push dword [esi + 0x88]
call fcn.0063d200
jmp 0x45d09a
xor eax, eax
lea edi, [esi + 0x498]
mov ecx, edi
push eax
call fcn.006209e4
pop eax
mov edx, dword [esi + 0x498]
test edx, edx
je 0x45a796
mov eax, dword [esi + 0x49c]
jmp 0x45a77b
lea edi, [esi + 0x358]
mov ecx, edi
call fcn.0047daba
mov ecx, dword [edi - 0x38]
mov edx, dword [edi - 0x34]
call fcn.0062111b
mov ecx, dword [edi - 0x30]
mov edx, dword [edi - 0x2c]
call fcn.0062111b
mov ecx, dword [edi - 0x28]
mov edx, dword [edi - 0x24]
call fcn.0062111b
mov edx, dword [esi + 0x2f4]
mov ecx, dword [esi + 0x4c]
call fcn.0043cca3
mov ecx, dword [esi + 0x1b0]
mov edx, dword [esi + 0x1b4]
call fcn.0043cca3
lea edi, [esi + 0x1d8]
mov ecx, dword [esi + 0x434]
mov edx, dword [esi + 0x438]
call fcn.0043cca3
mov bl, byte [esi + 0x110]
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x10]
call fcn.0043cca3
cmp bl, 4
mov ebx, dword [esi + 0x38]
je 0x45a88a
mov eax, dword [esi + 0x110]
mov edx, dword [esi + 0x114]
mov dword [esi + 0x324], edx
mov dword [esi + 0x320], eax
mov ecx, dword [0xa7101c]
cmp ecx, 1
jbe 0x45a882
lea eax, [esi + 0x320]
lea ecx, [esi + 0x498]
mov dword [esi + 0x1d8], eax
xor eax, eax
mov dword [ecx], 0x813574
mov dword [esi + 0x1dc], fcn.005e2620
inc eax
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], eax
push 2
pop edx
push 0x813588
call fcn.00565e75
pop eax
mov al, byte [esi + 0x320]
mov edx, dword [esi + 0x324]
movzx ecx, al
call fcn.005764ce
mov edx, dword [esi + 0xf0]
mov ecx, ebx
call fcn.004bd77e
cmp dword [esi + 0x70], 0
je 0x45aa8a
mov edi, dword [esi + 4]
cmp byte [edi + 0x94], 0
je 0x45a983
lea edx, [edi + 0x95]
lea edi, [esi + 0x498]
mov ecx, edi
call fcn.0043bd37
mov edi, dword [edi]
cmp edi, 5
jne 0x45a9b4
mov edi, dword [esi + 0x28]
test edi, edi
cmove edi, dword [esi + 0x34]
push 0
push 0
push dword [esi + 0x70]
push edi
push 0
push 0xfde9
call sub.kernel32.dll_MultiByteToWideChar
test eax, eax
je 0x45a9de
mov ebx, eax
lea eax, [eax + eax + 2]
push eax
push 0x42
call sub.kernel32.dll_GlobalAlloc
test eax, eax
je 0x45cedc
lea ecx, [esi + 0x498]
mov edx, eax
mov dword [esi + 0x50], eax
call fcn.0043d904
lea eax, [esi + 0x498]
mov eax, dword [eax]
test eax, eax
je 0x45a9ce
mov ecx, dword [esi + 0x49c]
mov edx, dword [esi + 0x4a0]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x38], edx
push ebx
push eax
push dword [esi + 0x70]
push edi
push 0
push 0xfde9
mov edi, eax
call sub.kernel32.dll_MultiByteToWideChar
and word [edi + ebx*2], 0
push dword [esi + 0x38]
call dword [esi + 0x10]
add esp, 4
call sub.user32.dll_EmptyClipboard
test eax, eax
jne 0x45a96d
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, dword [esi + 0x50]
push edi
push 0xd
call sub.user32.dll_SetClipboardData
test eax, eax
je 0x45a9d8
push 5
jmp 0x45aa06
mov ecx, dword [edi + 0x88]
mov edx, dword [edi + 0x8c]
call fcn.004bd77e
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x70]
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], edx
mov dword [edi + 0x90], ecx
jmp 0x45aa8a
mov eax, dword [esi + 0x4a4]
mov ecx, dword [esi + 0x4a0]
mov ebx, dword [esi + 0x49c]
mov dword [esi + 0x50], eax
mov dword [esi + 0x10], ecx
jmp 0x45aa0c
push dword [esi + 0x50]
call sub.kernel32.dll_GlobalFree
jmp 0x45a9e4
push edi
call sub.kernel32.dll_GlobalFree
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x33
pop ecx
mov dword [esi + 0x50], ecx
call fcn.0043d8e3
mov ebx, eax
mov dword [esi + 0x10], edx
push 0x33
push 0x7fcf9d
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 4
pop edi
call fcn.0043d93c
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x34]
call fcn.0043bd22
cmp edi, 5
je 0x45aa8a
mov eax, dword [esi + 0x10]
mov dword [esi + 0x1d8], edi
mov dword [esi + 0x1dc], ebx
mov dword [esi + 0x1e0], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x1e4], eax
mov eax, dword [0xa7101c]
test eax, eax
je 0x45aa7f
xor edx, edx
lea eax, [esi + 0x320]
lea ecx, [esi + 0x1d8]
mov dword [eax], ecx
lea ecx, [esi + 0x498]
inc edx
mov dword [eax + 4], 0x43bc58
mov dword [ecx], str.arboard_copy_cut_error:
mov dword [ecx + 4], edx
and dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
push 0x8134ac
call fcn.00565e75
pop eax
lea ecx, [esi + 0x1d8]
call fcn.00496d86
cmp dword [esi + 0x18], 1
jne 0x45ab9c
mov edi, dword [esi + 0x8c]
cvtss2sd xmm0, dword [esi + 0x68]
cvtss2sd xmm1, dword [esi + 0x94]
mov ecx, dword [edi + 4]
movsd qword [esi + 0x10], xmm0
movsd qword [esi + 0x18], xmm1
call fcn.0062970f
mov ecx, dword [edi]
mov dword [esi + 0x50], eax
mov ebx, edx
call fcn.00496d99
movsd xmm2, qword [esi + 0x10]
movsd xmm1, qword [esi + 0x18]
mov dword [esi + 0x1d8], 1
movsd qword [esi + 0x38], xmm0
movsd qword [esi + 0x1e0], xmm2
movsd qword [esi + 0x1e8], xmm1
call fcn.0062984a
test al, al
je 0x45ab92
movsd xmm0, qword [esi + 0x38]
lea ecx, [esi + 0x1d8]
call fcn.006280a6
movsd xmm0, qword [0x6463d0]
movsd xmm2, qword [0x6463d8]
cvtsi2sd xmm1, eax
xor ecx, ecx
ucomisd xmm1, xmm1
maxsd xmm1, xmm0
minsd xmm1, xmm2
cvttsd2si eax, xmm1
cvtsi2sd xmm1, edx
cmovp eax, ecx
ucomisd xmm1, xmm1
maxsd xmm1, xmm0
minsd xmm1, xmm2
cvttsd2si edx, xmm1
cmovp edx, ecx
and dword [esi + 0x4ac], 0
and dword [esi + 0x4a8], 0
and dword [esi + 0x4b4], 0
and dword [esi + 0x4b0], 0
and dword [esi + 0x498], 0
mov dword [esi + 0x49c], 0x80
mov dword [esi + 0x4a0], eax
lea eax, [esi + 0x498]
mov dword [esi + 0x4a4], edx
push eax
push ebx
call dword [sym.imp.imm32.dll_ImmSetCandidateWindow]
mov ecx, dword [esi + 0x50]
mov edx, ebx
call fcn.0062987f
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0xa8]
mov eax, dword [esi + 0x8e8]
test ebx, ebx
je 0x45ae3f
test eax, eax
je 0x45ae3f
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x10], eax
lea eax, [esi + 0x110]
push 0x40
lea edi, [esi + 0x8b8]
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [esi + 0x10], 0
je 0x45b3ab
add ebx, 0xc
lea eax, [esi + 0x420]
push 0x40
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea edi, [esi + 0x910]
mov ecx, edi
call fcn.0042e27a
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi]
mov edi, dword [edi + 4]
mov dword [esi + 0xc4], edi
mov edi, dword [esi + 0x10]
mov dword [esi + 0xc0], edx
mov dword [esi + 0xc8], eax
mov dword [esi + 0xcc], ecx
mov dword [esi + 0xb0], 0xa38ef0
and dword [esi + 0xb4], 0
and dword [esi + 0xb8], 0
and dword [esi + 0xbc], 0
mov dword [esi + 0xd0], ebx
mov dword [esi + 0xd4], 8
and dword [esi + 0xd8], 0
and dword [esi + 0xdc], 0
lea eax, [edi + 0x10]
mov dword [esi + 0x68], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
lea ecx, [edi + 0x14]
call fcn.00438fcd
test al, 1
mov byte [esi + 8], dl
jne 0x45d143
lea eax, [edi + 0x18]
lea edi, [esi + 0x900]
mov ecx, edi
mov dword [esi + 0x50], eax
call fcn.0042e27a
mov ebx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov edx, dword [edi]
mov edi, dword [edi + 4]
lea ecx, [esi + 0x4b8]
mov dword [ecx - 0xc], edi
mov dword [ecx - 0x10], edx
mov dword [ecx - 4], eax
mov dword [ecx - 8], ebx
mov dword [ecx - 0x20], 0xa38ef0
and dword [ecx - 0x1c], 0
and dword [ecx - 0x18], 0
and dword [ecx - 0x14], 0
call fcn.00433471
lea edi, [esi + 0x4d8]
mov ecx, edi
call fcn.00433471
mov ecx, dword [esi + 0x50]
lea eax, [esi + 0x498]
mov byte [edi + 0xaf], 3
lea edx, [esi + 0x420]
push eax
call fcn.0042edc3
pop eax
mov eax, dword [edi - 0x40]
mov ecx, dword [edi - 0x3c]
lea ebx, [esi + 0x320]
movdqa xmm0, xmmword [eax]
lea ecx, [ecx + eax + 1]
mov dword [ebx], eax
add eax, 0x10
mov dword [ebx + 4], eax
mov eax, dword [edi - 0x34]
mov dword [ebx + 8], ecx
pmovmskb edx, xmm0
not edx
mov word [ebx + 0xc], dx
mov dword [ebx + 0x10], eax
lea ecx, [esi + 0x320]
call fcn.0042e306
test eax, eax
je 0x45ae5a
mov edx, dword [eax - 0x10]
mov ecx, dword [esi + 0x50]
push dword [eax - 4]
push dword [eax - 8]
push dword [eax - 0xc]
call fcn.0042d6f1
add esp, 0xc
mov ecx, eax
push 0x7fc408
call fcn.0042d72b
pop ecx
mov dword [esi + 0x2f0], eax
mov ebx, edx
mov dword [esi + 0x2f4], edx
lea ecx, [esi + 0xb0]
lea edx, [esi + 0x2f0]
mov edi, eax
call fcn.0043a584
mov ecx, edi
mov edx, ebx
call fcn.00432fae
test al, al
jne 0x45ad29
lea ecx, [esi + 0x1d8]
lea edx, [esi + 0x2f0]
call fcn.0042d020
mov edi, dword [esi + 0x1d8]
mov edx, dword [esi + 0x1dc]
mov ecx, edi
call fcn.00404e53
test edi, edi
je 0x45ad29
lea ecx, [esi + 0x2f0]
call fcn.00430899
test al, al
je 0x45ad29
mov edx, dword [esi + 0xd0]
lea ecx, [esi + 0x408]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0043417a
add esp, 0x10
mov ecx, dword [esi + 0x408]
mov edx, dword [esi + 0x40c]
push dword [esi + 0x418]
push dword [esi + 0x414]
push dword [esi + 0x410]
call fcn.004341fc
add esp, 0xc
mov dword [esi + 0x1d8], eax
mov dword [esi + 0x1dc], 0x4e38
and dword [esi + 0x1fc], 0
lea ecx, [esi + 0xd4]
lea edx, [esi + 0x1d8]
call fcn.0043a54c
jmp 0x45ad29
mov ebx, dword [esi + 4]
test eax, eax
je 0x45b3b9
lea ecx, [esi + 0x8b8]
call fcn.00495a54
jmp 0x45b3b9
mov eax, dword [esi + 0x4b8]
mov ecx, dword [esi + 0x4bc]
lea edx, [esi + 0x1d8]
lea edi, [esi + 0xb0]
movdqa xmm0, xmmword [eax]
lea ecx, [ecx + eax + 1]
mov dword [edx], eax
add eax, 0x10
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x4c4]
pmovmskb eax, xmm0
not eax
mov word [edx + 0xc], ax
mov dword [edx + 0x10], ecx
lea ecx, [esi + 0x1d8]
call fcn.004334e0
test eax, eax
je 0x45aeeb
mov ebx, edx
mov edx, dword [eax]
mov ecx, dword [esi + 0x50]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
call fcn.0042d6f1
add esp, 0xc
mov ecx, eax
push 0x7fc418
call fcn.0042d72b
pop ecx
mov dword [esi + 0x320], eax
lea eax, [esi + 0x320]
mov dword [esi + 0x324], edx
mov ecx, edi
mov edx, ebx
push eax
call fcn.004334f1
pop eax
jmp 0x45ae98
lea eax, [esi + 0x4f8]
mov al, byte [eax + 0x8f]
cmp al, 3
mov byte [esi + 0x94], al
je 0x45b130
push 0x90
lea eax, [esi + 0x4f8]
push eax
lea eax, [esi + 0x1d8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp byte [esi + 0x21f], 2
mov edi, dword [esi + 0x10]
je 0x45afc9
mov eax, dword [esi + 0x1e4]
lea edx, [esi + 0x320]
lea ecx, [esi + 0x4b8]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x1e0]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x1dc]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x1d8]
mov dword [edx], eax
call fcn.0042e42f
test al, al
jne 0x45afc9
lea edx, [esi + 0x320]
lea ecx, [esi + 0x4d8]
call fcn.0042e42f
test al, al
jne 0x45afc9
mov edx, dword [esi + 0x320]
mov ecx, dword [esi + 0x50]
push dword [esi + 0x32c]
push dword [esi + 0x328]
push dword [esi + 0x324]
call fcn.0042d6f1
add esp, 0xc
test eax, eax
je 0x45afc9
mov dword [esi + 0x2f0], eax
lea eax, [esi + 0x2f0]
mov dword [esi + 0x2f4], edx
lea ecx, [esi + 0xb0]
lea edx, [esi + 0x1d8]
push eax
call fcn.004334f1
pop eax
mov ebx, dword [edi + 0x60]
mov edx, dword [edi + 0x64]
mov eax, dword [edi + 0x58]
mov edi, dword [edi + 0x5c]
mov ecx, edi
mov dword [esi + 0x38], edx
mov dword [esi + 0x18], ebx
or ecx, edx
mov edx, eax
or edx, ebx
or edx, ecx
mov cl, 1
mov dword [esi + 0x10], ecx
je 0x45b10b
mov ecx, dword [esi + 0x50]
mov edx, eax
push dword [esi + 0x38]
push dword [esi + 0x18]
push edi
call fcn.0042d6f1
add esp, 0xc
mov ecx, eax
push 0x7fc024
call fcn.0042d72b
pop ecx
test eax, eax
je 0x45b10b
mov dword [esi + 0x1b0], eax
mov dword [esi + 0x1b4], edx
mov ebx, edx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edi, dword [edx + 0xc]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 8]
lea edx, [esi + 0x2f0]
mov dword [edx + 4], ecx
lea ecx, [esi + 0x498]
mov dword [edx + 0xc], edi
mov dword [edx + 8], eax
mov eax, dword [esi + 0x10]
mov dword [edx], eax
call fcn.00433ee1
mov cl, 1
test al, al
mov dword [esi + 0x10], ecx
jne 0x45b0b6
lea edx, [esi + 0x2f0]
lea ecx, [esi + 0x4b8]
call fcn.0042e42f
test al, al
jne 0x45b0b6
cmp byte [esi + 0x267], 2
je 0x45b0b6
lea eax, [esi + 0x220]
push 0x48
push eax
lea edi, [esi + 0x320]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esi + 0x1b0]
lea ecx, [esi + 0xb0]
mov edx, edi
push eax
call fcn.004334f1
pop eax
mov ecx, edi
call fcn.00433fe6
mov dword [esi + 0x10], 0
mov edx, dword [esi + 0xd0]
lea edi, [esi + 0x920]
mov ecx, edi
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0043417a
add esp, 0x10
mov ecx, dword [edi]
mov edx, dword [edi + 4]
push dword [edi + 0x10]
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.004341fc
add esp, 0xc
lea edx, [esi + 0x320]
lea ecx, [esi + 0xd4]
mov dword [edx], eax
mov dword [edx + 4], 0x4e25
and dword [edx + 0x24], 0
call fcn.0043a54c
lea ecx, [esi + 0x1d8]
call fcn.00433fdb
cmp byte [esi + 0x10], 0
je 0x45b130
cmp byte [esi + 0x267], 2
je 0x45b130
lea ecx, [esi + 0x220]
call fcn.00433fe6
mov eax, dword [esi + 0x4d8]
mov ecx, dword [esi + 0x4dc]
lea edx, [esi + 0x1d8]
and byte [esi + 8], 1
movdqa xmm0, xmmword [eax]
lea ecx, [ecx + eax + 1]
mov dword [edx], eax
add eax, 0x10
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x4e4]
pmovmskb eax, xmm0
not eax
mov word [edx + 0xc], ax
mov dword [edx + 0x10], ecx
lea ecx, [esi + 0x1d8]
call fcn.004334e0
test eax, eax
je 0x45b1d4
test edx, edx
je 0x45b1d4
mov eax, dword [edx + 0x10]
cmp byte [eax + 0x6b], 1
jne 0x45b16c
mov eax, dword [edx + 0x20]
mov edi, dword [edx + 0x28]
mov ebx, dword [edx + 0x2c]
mov ecx, dword [edx + 0x24]
mov edx, eax
mov dword [esi + 0x38], ecx
or ecx, ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x10], edi
or edx, edi
or edx, ecx
je 0x45b16c
mov ecx, dword [esi + 0x50]
mov edx, eax
push dword [esi + 0x18]
push dword [esi + 0x10]
push dword [esi + 0x38]
call fcn.0042d6f1
add esp, 0xc
test eax, eax
je 0x45b16c
mov edi, edx
lea ecx, [esi + 0xb0]
mov edx, eax
push edi
call fcn.00434077
pop eax
jmp 0x45b16c
mov ecx, dword [esi + 0x498]
mov edx, dword [esi + 0x49c]
call fcn.0042e232
lea ecx, [esi + 0x4b8]
call fcn.00433ffb
cmp byte [esi + 0x94], 3
jne 0x45b218
cmp byte [esi + 0x587], 3
je 0x45b218
lea ecx, [esi + 0x4f8]
call fcn.00433fdb
lea ecx, [esi + 0x540]
call fcn.00433fdb
lea ecx, [esi + 0x4d8]
call fcn.00433ffb
mov eax, dword [esi + 0xd8]
movzx edx, byte [esi + 8]
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 0xd4]
mov edi, dword [esi + 0xdc]
mov dword [esi + 0x38], eax
call fcn.00608264
mov ecx, dword [esi + 0xb0]
mov edx, dword [esi + 0xb4]
call fcn.0042e232
mov eax, ebx
test ebx, ebx
mov ebx, dword [esi + 4]
je 0x45b3b9
mov dword [esi + 8], eax
lea ebx, [eax + 0x24]
imul eax, edi, 0x28
test eax, eax
je 0x45b36e
mov dword [esi + 0x50], eax
mov eax, dword [ebx]
mov edi, dword [ebx - 0x24]
mov ecx, dword [ebx - 0x20]
test eax, eax
je 0x45b335
mov edx, dword [ebx - 4]
mov dword [esi + 0x10], eax
mov eax, dword [ebx - 0x18]
mov dword [esi + 0x18], edx
mov edx, dword [ebx - 0x1c]
mov dword [esi + 0x1d8], edi
mov dword [esi + 0x1dc], ecx
mov dword [esi + 0x1e4], eax
mov dword [esi + 0x1e0], edx
movsd xmm0, qword [ebx - 0x14]
movsd xmm1, qword [ebx - 0xc]
movsd qword [esi + 0x4a0], xmm1
movsd qword [esi + 0x498], xmm0
sub esp, 0x28
movsd xmm0, qword [esi + 0x498]
movsd xmm1, qword [esi + 0x4a0]
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm0
movq xmm0, qword [esi + 0x1d8]
movsd xmm1, qword [esi + 0x1e0]
movsd qword [esp + 0x10], xmm1
movq qword [esp + 8], xmm0
mov eax, dword [esi + 0x18]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call dword [sym.imp.uiautomationcore.dll_UiaRaiseAutomationPropertyChangedEvent]
lea edi, [esi + 0x320]
mov edx, eax
mov ecx, edi
call fcn.00438cba
mov ecx, edi
mov edx, 0x7fc8d4
call fcn.00438c84
mov edi, dword [esi + 0x10]
jmp 0x45b35a
push ecx
push edi
call dword [sym.imp.uiautomationcore.dll_UiaRaiseAutomationEvent]
lea ecx, [esi + 0x320]
mov edx, eax
call fcn.00438cba
lea ecx, [esi + 0x320]
mov edx, 0x7fc8e4
call fcn.00438c84
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [esi + 0x50]
add ebx, 0x28
add eax, 0xffffffd8
jmp 0x45b26b
xor edx, edx
push 0x28
pop ecx
div ecx
mov edi, eax
sub edi, 1
jb 0x45b392
cmp dword [ebx], 0
lea eax, [ebx - 0x24]
cmovne eax, ebx
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
add ebx, 0x28
jmp 0x45b377
mov eax, dword [esi + 0x38]
test eax, eax
je 0x45b3b6
imul eax, eax, 0x28
push 8
pop edx
mov ecx, dword [esi + 8]
push eax
call fcn.00402161
pop eax
jmp 0x45b3b6
lea ecx, [esi + 0x110]
call fcn.00495a54
mov ebx, dword [esi + 4]
cmp dword [esi + 0x70], 0
jne 0x45b3ca
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x34]
call fcn.004bd77e
mov edi, dword [esi + 0x48]
mov edx, dword [esi + 0x44]
mov ecx, edi
call fcn.0047d79a
mov edx, dword [esi + 0x30]
mov ecx, edi
call fcn.0047d9a8
mov ebx, dword [ebx + 0x21c]
lea ecx, [ebx + 8]
mov dword [esi + 0x100], ecx
call fcn.0047e405
mov eax, dword [ebx + 0x218]
movss xmm0, dword [ebx + 0x38c]
lea edi, [ebx + 0x6c8]
mov dword [esi + 0x2c], ebx
mov edx, str.tessellate_called_before_first_call_to_Context::run__
mov dword [esi + 0x44], eax
mov eax, dword [ebx + 0x214]
movss dword [esi + 0x38], xmm0
movss xmm0, dword [ebx + 0x210]
mov dword [esi + 0x48], eax
mov al, byte [ebx + 0x21c]
movss dword [esi + 0x30], xmm0
mov byte [esi + 8], al
mov al, byte [ebx + 0x21f]
mov byte [esi + 0x9e], al
movzx eax, word [ebx + 0x21d]
mov word [esi + 0x9c], ax
mov eax, dword [ebx + 0x6c8]
test eax, eax
cmove edi, eax
mov al, byte [ebx + 0x220]
mov ecx, edi
mov byte [esi + 0x28], al
mov al, byte [ebx + 0x221]
mov byte [esi + 0x94], al
mov al, byte [ebx + 0x222]
mov byte [esi + 0x34], al
mov al, byte [ebx + 0x223]
mov byte [esi + 0x68], al
push 0x811a5c
call fcn.00481450
pop ecx
mov ecx, dword [edi]
call fcn.0048b217
mov edi, dword [eax + 0x98]
lock inc dword [edi]
jle 0x45d0c9
mov ecx, eax
call fcn.00473405
lea ecx, [edi + 8]
mov dword [esi + 0x1ac], edi
mov dword [esi + 0x10], ecx
call fcn.0048b226
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
movss xmm0, dword [edi + 0x18]
movss xmm2, dword [edi + 0x1c]
mov ebx, dword [edi + 0x20]
mov edi, dword [edi + 0x28]
test edi, edi
mov dword [esi + 0x18], edi
mov dword [esi + 0xf0], ecx
mov dword [esi + 0xc], edx
je 0x45b53c
imul eax, edi, 0x14
cmp eax, 0x6aaaaaa5
setb al
jae 0x45d0ae
imul edi, edi, 0x18
movaps xmmword [esi + 0x70], xmm0
movapd xmmword [esi + 0x50], xmm2
test edi, edi
js 0x45d0ae
xor ecx, ecx
mov cl, al
mov edx, edi
shl ecx, 2
mov dword [esi + 0x24], ecx
call fcn.0043bd7b
movsd xmm7, qword [0x6461f8]
movapd xmm2, xmmword [esi + 0x50]
movaps xmm0, xmmword [esi + 0x70]
mov ecx, eax
test eax, eax
jne 0x45b547
mov ecx, dword [esi + 0x24]
mov edx, edi
jmp 0x45d10f
push 4
pop ecx
movsd xmm7, qword [0x6461f8]
movss xmm3, dword [0x646138]
orps xmm0, xmm7
orpd xmm2, xmm7
mov eax, dword [esi + 4]
mov dword [esi + 0x24], ecx
xor edi, edi
subsd xmm0, xmm7
subsd xmm2, xmm7
cvtsd2ss xmm1, xmm0
cvtsd2ss xmm2, xmm2
movaps xmm0, xmm3
add eax, 0x360
divss xmm0, xmm1
movaps xmm1, xmm3
mov dword [esi + 0x50], eax
lea eax, [ecx + 0x14]
imul ecx, dword [esi + 0x18], 0x14
divss xmm1, xmm2
test ecx, ecx
je 0x45b62c
movss xmm3, dword [ebx]
mov edx, dword [ebx + 8]
movss xmm4, dword [ebx + 4]
movss xmm5, dword [ebx + 8]
movss xmm6, dword [ebx + 0xc]
movss xmm2, dword [ebx + 0x10]
inc edi
add ecx, 0xffffffec
orpd xmm3, xmm7
orpd xmm4, xmm7
orpd xmm5, xmm7
orpd xmm6, xmm7
sub edx, dword [ebx]
add ebx, 0x14
subsd xmm3, xmm7
subsd xmm5, xmm7
subsd xmm4, xmm7
subsd xmm6, xmm7
cvtsd2ss xmm3, xmm3
cvtsd2ss xmm5, xmm5
mulss xmm3, xmm0
mulss xmm5, xmm0
movss dword [eax - 0x14], xmm3
cvtsd2ss xmm3, xmm4
cvtsd2ss xmm4, xmm6
mulss xmm3, xmm1
mulss xmm4, xmm1
movss dword [eax - 0x10], xmm3
movss dword [eax - 0xc], xmm5
movss dword [eax - 8], xmm4
movss dword [eax - 4], xmm2
movd xmm2, edx
por xmm2, xmm7
subsd xmm2, xmm7
cvtsd2ss xmm2, xmm2
movss dword [eax], xmm2
add eax, 0x18
jmp 0x45b58b
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x4c], edi
call fcn.00473405
lea edx, [esi + 0x498]
and dword [edx + 0x14], 0
and dword [edx + 0x20], 0
and dword [edx + 0x1c], 0
and dword [edx + 0x24], 0
and dword [edx + 0x34], 0
and dword [edx + 0x30], 0
and dword [edx + 0x3c], 0
and dword [edx + 0x38], 0
and dword [edx + 0x48], 0
and dword [edx + 0x44], 0
and dword [edx + 0x4c], 0
and dword [edx + 0x5c], 0
and dword [edx + 0x58], 0
and dword [edx + 0x64], 0
and dword [edx + 0x60], 0
and dword [edx + 0x70], 0
and dword [edx + 0x6c], 0
and dword [edx + 0x78], 0
and dword [edx + 0x74], 0
and dword [edx + 0x84], 0
and dword [edx + 0x80], 0
and dword [edx + 0x8c], 0
and dword [edx + 0x88], 0
and dword [edx + 0x98], 0
and dword [edx + 0x94], 0
and dword [edx + 0xa0], 0
and dword [edx + 0x9c], 0
and dword [edx + 0xac], 0
and dword [edx + 0xa8], 0
and dword [edx + 0xb4], 0
and dword [edx + 0xb0], 0
and dword [edx + 0xc0], 0
and dword [edx + 0xc8], 0
and dword [edx + 0xc4], 0
and dword [edx + 0xbc], 0
push 2
pop eax
mov dword [edx + 0x28], eax
mov dword [edx + 0x50], eax
mov eax, dword [esi]
mov edi, eax
shl edi, 6
xor ecx, ecx
inc ecx
mov dword [edx], ecx
mov dword [edx + 4], 0x40
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], edi
mov edx, dword [esi + 0x40]
mov dword [esi + 0x10], ecx
lea eax, [edx + edi]
mov dword [esi + 0x70], eax
test edi, edi
je 0x45b746
lea ebx, [edx + 0x40]
add edx, 0x10
lea ecx, [esi + 0x498]
call fcn.004a9814
add edi, 0xffffffc0
mov edx, ebx
jmp 0x45b72a
lea eax, [esi + 0x320]
push 0xcc
lea ecx, [esi + 0x498]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov cl, byte [esi + 8]
movss xmm1, dword [esi + 0x38]
movss xmm2, dword [esi + 0x30]
xorps xmm0, xmm0
test cl, cl
je 0x45b785
movss xmm0, dword [0x646138]
divss xmm0, xmm1
mulss xmm0, xmm2
mov eax, dword [esi + 0x44]
lea edx, [esi + 0x110]
mov bh, byte [esi + 0x28]
movss dword [edx + 0x18], xmm1
movss dword [edx + 0x44], xmm2
mov dword [edx + 0x4c], eax
mov eax, dword [esi + 0x48]
mov dword [edx + 0x48], eax
movzx eax, word [esi + 0x9c]
mov byte [edx + 0x50], cl
mov word [edx + 0x51], ax
mov al, byte [esi + 0x9e]
mov byte [edx + 0x53], al
mov al, byte [esi + 0x94]
mov byte [edx + 0x54], bh
mov byte [edx + 0x55], al
mov al, byte [esi + 0x34]
mov byte [edx + 0x56], al
mov al, byte [esi + 0x68]
mov byte [edx + 0x57], al
mov eax, dword [esi + 0xc]
mov dword [edx + 0x14], eax
mov eax, dword [esi + 0xf0]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x24]
mov dword [edx + 0x20], eax
mov eax, dword [esi + 0x18]
mov dword [edx + 0x24], eax
mov eax, dword [esi + 0x4c]
mov dword [edx + 0x28], eax
mov eax, 0xff800000
movss dword [edx + 0x1c], xmm0
mov dword [edx], eax
mov dword [edx + 4], eax
mov eax, 0x7f800000
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
push 4
pop eax
mov dword [edx + 0x2c], eax
and dword [edx + 0x30], 0
and dword [edx + 0x34], 0
mov dword [edx + 0x38], eax
lea eax, [esi + 0xa0]
mov ecx, dword [esi + 0x40]
and dword [edx + 0x3c], 0
and dword [edx + 0x40], 0
mov dword [eax], 8
and dword [eax + 4], 0
and dword [eax + 8], 0
mov eax, dword [esi + 0x98]
mov dword [esi + 0x498], ecx
lea edx, [ecx + 0x40]
mov dword [esi + 0x49c], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x4a4], eax
mov eax, dword [esi]
shl eax, 6
test eax, eax
je 0x45b8d0
mov bl, byte [ecx + 0x3c]
cmp bl, 0xd
je 0x45b8d5
lea edi, [ecx + 0x40]
mov dword [esi + 0x38], edi
push 0x3c
push ecx
lea edi, [esi + 0x8b8]
push edi
mov dword [esi], eax
mov edi, ecx
mov dword [esi + 0x18], edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + 0x8f4], bl
lea ecx, [esi + 0x8f5]
lea edx, [esi + 0x8b8]
movzx eax, word [edi + 0x3d]
mov word [ecx], ax
mov al, byte [edi + 0x3f]
mov byte [ecx + 2], al
lea ecx, [esi + 0x110]
lea eax, [esi + 0xa0]
push eax
call fcn.004a9b1d
mov edx, dword [esi + 0x18]
mov eax, dword [esi]
add esp, 4
mov ecx, dword [esi + 0x38]
add eax, 0xffffffc0
add edx, 0x40
jmp 0x45b861
mov eax, dword [esi + 0x70]
jmp 0x45b8d7
mov eax, edx
lea ecx, [esi + 0x498]
mov dword [ecx + 8], eax
call fcn.004a8bab
test bh, bh
je 0x45bcee
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0xa4]
lea edi, [esi + 0x1d8]
mov edx, 0xff800000
lea ebx, [esi + 0x420]
and dword [edi + 4], 0
and dword [edi], 0
and dword [edi + 0x84], 0
and dword [edi + 0x80], 0
mov dword [esi + 0x110], edx
mov dword [esi + 0x114], edx
mov edx, 0x7f800000
mov dword [esi + 0x118], edx
mov dword [esi + 0x11c], edx
lea edx, [esi + 0x110]
mov dword [edi + 0x100], eax
mov dword [edi + 0x104], ecx
imul ecx, dword [esi + 0xa8], 0x38
mov dword [edi + 0x108], eax
add ecx, eax
mov dword [edi + 0x10c], ecx
lea ecx, [esi + 0x8f8]
mov dword [edi + 0x110], edx
mov edx, edi
mov dword [ecx], 0x40000000
mov dword [ecx + 4], 0xff96ff96
mov dword [edi + 0x114], ecx
mov ecx, ebx
call fcn.004a60fc
xor eax, eax
cmp dword [ebx + 4], eax
je 0x45cf9d
mov ecx, dword [esi + 0x428]
test ecx, ecx
push 8
pop eax
mov dword [esi], ecx
je 0x45b9da
xor ebx, ebx
cmp ecx, 0x2492493
setb al
jae 0x45d0ae
imul edx, ecx, 0x38
test edx, edx
js 0x45d0ae
mov bl, al
mov dword [esi + 0x18], edx
shl ebx, 3
mov ecx, ebx
call fcn.0043bd7b
mov ecx, dword [esi]
test eax, eax
je 0x45d10a
mov dword [esi + 0x16c], eax
mov dword [esi + 0x170], ecx
and dword [esi + 0x174], 0
mov dword [esi + 0x18], eax
push 0x118
push edi
lea ebx, [esi + 0x498]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea edi, [esi + 0x420]
mov edx, ebx
mov ecx, edi
call fcn.004a60fc
cmp dword [edi + 4], 0
je 0x45d0df
mov ebx, dword [esi + 0x428]
xor eax, eax
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x174]
cmp dword [esi], ebx
jae 0x45ba56
lea edi, [esi + 0x16c]
xor edx, edx
mov ecx, edi
push ebx
call fcn.004a642d
pop ecx
mov ecx, eax
call fcn.00427d90
mov edx, dword [edi]
mov eax, dword [edi + 8]
lea edi, [esi + 0x174]
mov ecx, dword [esi + 0x498]
mov dword [esi + 0x178], edi
mov dword [esi + 0x17c], eax
mov eax, dword [esi + 0x518]
mov ebx, dword [esi + 0x598]
mov dword [esi + 0x180], edx
or ecx, dword [esi + 0x49c]
mov ecx, dword [esi + 0x51c]
mov dword [esi + 0x30], eax
mov dword [esi + 0x28], ecx
je 0x45bab3
lea eax, [esi + 0x4a0]
push 0x78
push eax
lea edi, [esi + 0x420]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esi + 0x178]
mov edx, edi
call fcn.004a045c
test ebx, ebx
je 0x45bc97
mov eax, dword [esi + 0x59c]
mov ecx, dword [esi + 0x5a8]
mov edx, dword [esi + 0x5ac]
mov edi, dword [esi + 0x5a0]
mov dword [esi + 0x48], ebx
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x5a4]
mov dword [esi + 0x70], ecx
mov dword [esi + 0x40], edx
mov dword [esi + 0x38], eax
cmp edi, eax
je 0x45bc73
mov edx, dword [edi]
mov ebx, dword [edi + 4]
mov ecx, edx
xor ecx, 3
or ecx, ebx
je 0x45bc77
mov dword [esi], ebx
mov ebx, edi
add edi, 8
push 0x30
pop ecx
push ecx
push edi
lea ecx, [esi + 0x428]
push ecx
mov dword [esi + 0x18], edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x30
pop eax
push eax
push edi
mov edi, ebx
lea eax, [esi + 0x2f0]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esi + 0x310]
movaps xmm0, xmmword [0x6463e0]
mov ecx, dword [esi + 0x70]
lea ebx, [esi + 0xb0]
movsd xmm3, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esi + 0x40]
mov edx, ebx
movaps xmmword [esi + 0x1c0], xmm0
xorps xmm0, xmm0
and dword [esi + 0x1d0], 0
and dword [esi + 0x1d4], 0
movaps xmmword [esi + 0x1b0], xmm0
movsd qword [esi + 0x8a0], xmm1
movsd qword [esi + 0x898], xmm3
movsd xmm2, qword [eax]
movsd qword [esi + 0xb8], xmm1
movsd qword [esi + 0xb0], xmm3
and dword [esi + 0xc8], 0
and dword [esi + 0xcc], 0
and dword [esi + 0xc0], 0
and dword [esi + 0xc4], 0
lea eax, [esi + 0x1b0]
movsd qword [esi + 0xd0], xmm2
and dword [esi + 0xd8], 0
mov byte [esi + 0xdc], 7
push eax
call fcn.0049d948
pop eax
movsd xmm0, qword [esi + 0x1d0]
movaps xmm2, xmmword [esi + 0x1b0]
movaps xmm1, xmmword [esi + 0x1c0]
lea eax, [esi + 0xd8]
mov ecx, 0x7f800000
mov edx, 0xff800000
movsd qword [esi + 0xd0], xmm0
movaps xmmword [esi + 0xc0], xmm1
movaps xmmword [esi + 0xb0], xmm2
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], edx
mov dword [eax], edx
push 0x38
push ebx
lea eax, [esi + 0x458]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi]
mov ecx, dword [esi + 0x18]
lea edx, [esi + 0x420]
mov dword [esi + 0x420], ecx
mov dword [esi + 0x424], eax
and dword [esi + 0x490], 0
lea ecx, [esi + 0x178]
mov dword [esi + 0x494], 2
call fcn.004a045c
mov eax, dword [esi + 0x38]
add edi, 0x38
jmp 0x45bae8
mov edi, eax
jmp 0x45bc7a
add edi, 0x38
sub eax, edi
push 0x38
pop ecx
xor edx, edx
div ecx
mov ecx, edi
mov edx, eax
call fcn.004a04d7
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0x44]
call fcn.004a6402
mov eax, dword [esi + 0x30]
or eax, dword [esi + 0x28]
je 0x45bcc4
lea eax, [esi + 0x520]
push 0x78
push eax
lea edi, [esi + 0x420]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esi + 0x178]
mov edx, edi
call fcn.004a045c
mov eax, dword [esi + 0x178]
mov ecx, dword [esi + 0x17c]
mov dword [eax], ecx
movsd xmm0, qword [esi + 0x16c]
mov eax, dword [esi + 0x174]
movsd qword [esi + 0xa0], xmm0
mov dword [esi + 0xa8], eax
cmp byte [esi + 0x34], 0
je 0x45bd2f
mov edi, dword [esi + 0xa0]
mov eax, dword [esi + 0xa8]
mov ecx, 0x7f800000
mov edx, 0xff800000
mov dword [esi], eax
imul eax, eax, 0x38
mov ebx, edi
test eax, eax
je 0x45bd29
mov dword [edi + 0x34], ecx
mov dword [edi + 0x30], ecx
mov dword [edi + 0x2c], edx
mov dword [edi + 0x28], edx
add edi, 0x38
add eax, 0xffffffc8
jmp 0x45bd11
mov edx, dword [esi]
mov edi, ebx
jmp 0x45bd3b
mov edi, dword [esi + 0xa0]
mov edx, dword [esi + 0xa8]
and dword [esi + 0xa8], 0
xor ecx, ecx
mov dword [esi + 0x44], edi
cmp edx, ecx
je 0x45bd74
mov dword [esi], ecx
mov ecx, edi
mov ebx, edx
call fcn.004a846a
mov ecx, dword [esi]
mov edx, ebx
add edi, 0x38
inc ecx
test al, al
jne 0x45bd47
add edi, 0xffffffc8
mov dword [esi], ecx
mov ecx, edi
call fcn.004a04f1
mov eax, dword [esi]
mov edx, ebx
jmp 0x45bd7d
mov dword [esi + 0x10], 0
mov eax, edx
imul edi, eax, 0x38
mov ebx, edx
mov dword [esi], edx
add edi, dword [esi + 0x44]
sub ebx, eax
sub ebx, 1
jb 0x45bdbc
mov ecx, edi
call fcn.004a846a
test al, al
je 0x45bdad
imul eax, dword [esi + 0x10], 0xffffffc8
add eax, edi
push 0x38
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x45bdb7
inc dword [esi + 0x10]
mov ecx, edi
call fcn.004a04f1
add edi, 0x38
jmp 0x45bd89
mov eax, dword [esi + 0xa4]
mov edi, dword [esi]
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 0x130]
mov edx, dword [esi + 0x134]
sub edi, ebx
mov dword [esi + 8], eax
call fcn.00570f40
mov ecx, dword [esi + 0x13c]
mov edx, dword [esi + 0x140]
call fcn.004a0711
mov ecx, dword [esi + 0x148]
mov edx, dword [esi + 0x14c]
call fcn.004a87e5
imul eax, edi, 0x38
xor ecx, ecx
lea edx, [esi + 0x498]
mov dword [esi + 0x68], edi
inc ecx
mov dword [edx], ecx
mov dword [edx + 4], 0x38
mov dword [edx + 8], ecx
lea ecx, [esi + 0x3ac]
mov dword [edx + 0xc], edi
mov dword [edx + 0x10], eax
call fcn.004a6cbc
imul edx, dword [esi], 0x38
mov edi, dword [esi + 0x44]
imul eax, ebx, 0x38
xor ebx, ebx
sub edx, eax
mov dword [esi + 0x38], edx
cmp edx, ebx
je 0x45bed7
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + ebx]
xor eax, 2
or eax, dword [ecx + ebx + 4]
je 0x45becf
mov eax, dword [edi + ebx + 0x24]
xor ecx, ecx
lea edx, [esi + 0x498]
inc ecx
mov dword [esi + 0x498], ecx
mov dword [esi + 0x49c], 0x14
mov dword [esi + 0x4a0], ecx
lea ecx, [esi + 0x3c0]
mov dword [esi + 0x4a4], eax
imul eax, eax, 0x14
mov dword [esi + 0x4a8], eax
call fcn.004a6cbc
mov eax, dword [edi + ebx + 0x18]
xor ecx, ecx
lea edx, [esi + 0x498]
inc ecx
mov dword [esi + 0x498], ecx
mov dword [esi + 0x49c], 4
mov dword [esi + 0x4a0], ecx
lea ecx, [esi + 0x3d4]
mov dword [esi + 0x4a4], eax
shl eax, 2
mov dword [esi + 0x4a8], eax
call fcn.004a6cbc
mov edx, dword [esi + 0x38]
add ebx, 0x38
jmp 0x45be3b
mov edi, dword [esi + 0x2c]
mov eax, 0xcc
add edi, 0x5f8
push eax
lea eax, [esi + 0x320]
push eax
lea ebx, [esi + 0x498]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, 0xcc
push eax
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esi + 0x1ac]
call fcn.0047e023
mov ecx, dword [esi + 0x100]
call fcn.00473841
mov edi, dword [esi + 4]
mov ecx, dword [edi + 0x21c]
call fcn.0048a16d
mov ecx, dword [esi + 0x3f0]
imul eax, dword [esi + 0x3f8], 0x38
lea edx, [edi + 0x370]
movss dword [esi + 0x48], xmm0
mov dword [esi + 0x98], edx
add eax, ecx
mov dword [esi + 0x34], eax
cmp ecx, dword [esi + 0x34]
je 0x45c43a
mov ebx, dword [ecx]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
mov dword [esi + 0x18], ecx
mov edi, dword [ecx + 8]
mov ecx, dword [esi + 4]
movzx ecx, byte [ecx + 0x3c6]
mov dword [esi + 0x70], ebx
mov dword [esi], eax
mov dword [esi + 0x10], edx
call fcn.004954b3
mov eax, dword [esi]
mov dword [esi + 0x498], ebx
mov dword [esi + 0x49c], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x4a0], edi
mov dword [esi + 0x4a4], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x370]
mov eax, dword [esi + 4]
mov edx, dword [eax + 0x374]
push dword [esi + 0x10]
push edi
mov ebx, dword [esi + 4]
push dword [esi]
push dword [esi + 0x70]
push dword [ebx + 0x37c]
push dword [ebx + 0x378]
call fcn.00494932
add esp, 0x18
mov dword [esi], eax
lea eax, [esi + 0x498]
mov dword [esi + 0x10], edx
mov edx, dword [ebx + 0x364]
mov ecx, dword [ebx + 0x360]
mov dword [esi + 0x320], eax
lea eax, [esi + 0x320]
mov dword [esi + 0x1d8], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x1dc], eax
push 0x494d03
lea edi, [esi + 0x1d8]
push edi
push dword [esi + 0x10]
push dword [esi]
call fcn.004a4151
add esp, 0x10
test eax, eax
je 0x45c035
mov eax, dword [ebx + 0x360]
test eax, eax
je 0x45c035
neg edx
imul ecx, edx, 0x18
add eax, ecx
jmp 0x45c0ee
cmp dword [ebx + 0x368], 0
je 0x45c427
mov eax, dword [esi + 0x498]
mov edi, dword [esi + 0x49c]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x4a4]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x4a0]
and dword [esi + 0x498], 0
mov dword [esi + 0x40], eax
mov eax, dword [ebx + 0x3b4]
mov eax, dword [eax + 0x344]
test eax, eax
je 0x45d02f
lea ecx, [esi + 0x498]
push ecx
push 1
call eax
mov ecx, dword [esi + 0x498]
mov dword [esi + 0x30], ecx
call fcn.004be5e0
mov ecx, dword [ebx + 0x360]
mov edx, dword [ebx + 0x364]
push dword [esi + 0x10]
push dword [esi]
call fcn.0057e3af
pop ecx
pop ecx
and dl, 1
neg eax
movzx ecx, dl
mov edx, dword [ebx + 0x360]
imul eax, eax, 0x18
sub dword [ebx + 0x368], ecx
mov ecx, dword [esi + 0x70]
mov dword [edx + eax - 0x14], edi
mov edi, dword [esi + 0x30]
mov dword [edx + eax - 0x18], ecx
mov ecx, dword [esi + 0x28]
mov dword [edx + eax - 0xc], ecx
mov ecx, dword [esi + 0x40]
mov dword [edx + eax - 0x10], ecx
mov dword [edx + eax - 8], edi
inc dword [ebx + 0x36c]
add eax, edx
mov edi, dword [esi + 0x18]
mov edx, dword [eax - 8]
lea ecx, [edi + 0x38]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebx + 0x3b4]
add ecx, 8
call fcn.004bea62
cmp dword [edi + 0x10], 0
je 0x45c3b5
mov eax, dword [edi + 0x24]
lea ebx, [esi + 0x320]
imul eax, dword [edi + 0x20]
mov dword [esi + 0x320], eax
mov ecx, dword [edi + 0x1c]
cmp eax, ecx
mov dword [esi + 0x1d8], ecx
jne 0x45cff4
mov ecx, dword [edi + 0x14]
and dword [esi + 0x1d8], 0
and dword [esi + 0x1e8], 0
lea edi, [esi + 0x1d8]
mov edx, edi
lea eax, [ecx + eax*4]
mov dword [esi + 0x1f8], ecx
mov ecx, ebx
mov dword [esi + 0x1fc], eax
mov dword [esi + 0x200], 0x3f0ccccd
call fcn.00494816
xor eax, eax
cmp dword [esi + 0x324], eax
je 0x45cf9d
mov ecx, dword [esi + 0x328]
xor edx, edx
call fcn.004bddb8
mov dword [esi + 0x110], eax
mov dword [esi + 0x114], edx
and dword [esi + 0x118], 0
push 0x2c
push edi
lea edi, [esi + 0x498]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, ebx
mov edx, edi
call fcn.00494816
cmp dword [esi + 0x324], 0
je 0x45cfc6
mov edx, dword [esi + 0x328]
lea ecx, [esi + 0x110]
call fcn.004bdc8d
mov ecx, dword [esi + 0x118]
lea ebx, [esi + 0x118]
mov edx, dword [esi + 0x4a8]
mov eax, dword [esi + 0x110]
mov edi, dword [esi + 0x4b8]
cmp dword [esi + 0x498], 0
mov dword [esi + 0x420], ebx
mov ebx, dword [esi + 0x4bc]
mov dword [esi + 0x424], ecx
mov ecx, dword [esi + 0x4c0]
mov dword [esi + 0x70], edx
mov dword [esi + 0x428], eax
je 0x45c251
lea eax, [esi + 0x4ac]
mov dword [esi], ecx
lea edx, [esi + 0x320]
mov ecx, eax
mov eax, dword [eax - 8]
movsd xmm0, qword [ecx - 0x10]
lea ecx, [esi + 0x420]
mov dword [esi + 0x328], eax
movsd qword [esi + 0x320], xmm0
call fcn.004bd3e7
mov ecx, dword [esi]
test edi, edi
je 0x45c310
mov dword [esi], ecx
cmp edi, ebx
je 0x45c310
sub esp, 0x10
cvtss2sd xmm0, dword [esi]
movsd qword [esp + 8], xmm0
cvtss2sd xmm0, dword [edi]
add edi, 4
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
add esp, 0x10
fstp dword [esi + 0x1a8]
movss xmm1, dword [0x646000]
movss xmm0, dword [esi + 0x1a8]
mulss xmm0, xmm1
addss xmm0, dword [0x6460f0]
sub esp, 8
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
pop eax
pop ecx
fstp dword [esi + 0x1a4]
xorps xmm0, xmm0
movss xmm1, dword [0x646000]
lea ecx, [esi + 0x420]
lea edx, [esi + 0x320]
maxss xmm0, dword [esi + 0x1a4]
and dword [esi + 0x320], 0
mov dword [esi + 0x324], 4
minss xmm1, xmm0
cvttss2si eax, xmm1
movzx eax, al
imul eax, eax, 0x1010101
mov dword [esi + 0x328], eax
call fcn.004bd3e7
jmp 0x45c25b
cmp dword [esi + 0x70], 0
je 0x45c342
lea ecx, [esi + 0x4ac]
lea edx, [esi + 0x320]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
lea ecx, [esi + 0x420]
mov dword [esi + 0x328], eax
movsd qword [esi + 0x320], xmm0
call fcn.004bd3e7
mov eax, dword [esi + 0x420]
mov ecx, dword [esi + 0x424]
mov ebx, dword [esi + 0x18]
lea edx, [esi + 0x498]
mov dword [eax], ecx
mov ecx, dword [ebx + 0x30]
mov eax, dword [esi + 0x114]
mov edi, dword [esi + 0x110]
mov dword [esi + 0x4a0], ecx
mov dword [esi], eax
mov eax, dword [esi + 0x118]
mov ecx, dword [esi + 0x50]
movsd xmm0, qword [ebx + 0x28]
mov dword [esi + 0x70], eax
movsd qword [esi + 0x498], xmm0
movzx eax, byte [ebx + 0x34]
mov dword [esi + 0x40], eax
movzx eax, byte [ebx + 0x35]
push dword [esi + 0x70]
push edi
push eax
push dword [esi + 0x40]
push dword [ebx + 0x24]
push dword [ebx + 0x20]
call fcn.004954e5
add esp, 0x18
mov edx, dword [esi]
mov ecx, edi
call fcn.004bdbce
jmp 0x45c41c
mov eax, dword [edi + 0x24]
imul eax, dword [edi + 0x20]
mov dword [esi + 0x320], eax
mov ecx, dword [edi + 0x1c]
cmp eax, ecx
mov dword [esi + 0x1d8], ecx
jne 0x45d04e
mov ecx, dword [edi + 0x14]
mov ebx, edi
shl eax, 2
lea edx, [esi + 0x498]
mov dword [esi], ecx
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x4a0], ecx
movsd xmm0, qword [edi + 0x28]
movsd qword [esi + 0x498], xmm0
movzx ecx, byte [edi + 0x34]
movzx edi, byte [edi + 0x35]
mov dword [esi + 0x70], ecx
mov ecx, dword [esi + 0x50]
push eax
push dword [esi]
push edi
push dword [esi + 0x70]
push dword [ebx + 0x24]
push dword [ebx + 0x20]
call fcn.004954e5
add esp, 0x18
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 4]
jmp 0x45bf53
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x98]
call fcn.0063e3d1
jmp 0x45c042
movzx ecx, byte [edi + 0x3c6]
call fcn.004954b3
mov edx, dword [esi + 0x6c]
mov ecx, dword [esi + 0x50]
movss xmm0, dword [esi + 0x48]
push dword [esi + 0x90]
call fcn.004956cf
pop ecx
mov ebx, edx
mov dword [esi + 0x40], eax
mov edx, dword [esi + 0x44]
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], ebx
test eax, eax
je 0x45c918
movss xmm1, dword [esi + 0x48]
movss xmm2, dword [edx + 0x2c]
movss xmm4, dword [edx + 0x30]
movss xmm3, dword [edx + 0x34]
movss xmm0, dword [edx + 0x28]
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x3b4]
mulss xmm2, xmm1
mulss xmm4, xmm1
mulss xmm3, xmm1
mov dword [esi + 0x34], eax
mulss xmm0, xmm1
movss dword [esi + 0x28], xmm2
movss dword [esi + 0x30], xmm4
movss dword [esi], xmm3
sub esp, 4
movss dword [esp], xmm0
mov dword [esi + 0x70], edx
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esi + 0x1a0]
movss xmm1, dword [0x646154]
mov edi, 0x7fffffff
mov ecx, 0
movss xmm0, dword [esi + 0x1a0]
cvttss2si eax, xmm0
ucomiss xmm0, xmm1
cmova eax, edi
ucomiss xmm0, xmm0
cmovp eax, ecx
mov dword [esi + 0x10], eax
sub esp, 4
movss xmm0, dword [esi + 0x28]
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esi + 0x19c]
mov ecx, 0
movss xmm0, dword [esi + 0x19c]
ucomiss xmm0, dword [0x646154]
cvttss2si eax, xmm0
cmova eax, edi
ucomiss xmm0, xmm0
cmovp eax, ecx
mov dword [esi + 0x28], eax
sub esp, 4
movss xmm0, dword [esi + 0x30]
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esi + 0x198]
mov ecx, 0
movss xmm0, dword [esi + 0x198]
ucomiss xmm0, dword [0x646154]
cvttss2si eax, xmm0
cmova eax, edi
ucomiss xmm0, xmm0
cmovp eax, ecx
mov dword [esi + 0x30], eax
sub esp, 4
movss xmm0, dword [esi]
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esi + 0x194]
mov eax, 0
movss xmm0, dword [esi + 0x194]
mov ecx, dword [esi + 0x10]
ucomiss xmm0, dword [0x646154]
cvttss2si ebx, xmm0
cmova ebx, edi
ucomiss xmm0, xmm0
cmovp ebx, eax
xor edx, edx
push dword [esi + 0x40]
call fcn.0049490a
pop ecx
mov ecx, dword [esi + 0x28]
mov edi, eax
xor edx, edx
push dword [esi + 0x18]
call fcn.0049490a
pop ecx
mov ecx, dword [esi + 0x30]
mov dword [esi], eax
mov dword [esi + 0x10], edi
mov edx, edi
push dword [esi + 0x40]
call fcn.0049490a
pop ecx
mov ecx, ebx
mov ebx, dword [esi + 0x18]
mov edx, dword [esi]
mov edi, eax
push ebx
call fcn.0049490a
pop ecx
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx + 0x7c0]
test ecx, ecx
je 0x45cf90
sub ebx, eax
sub eax, dword [esi]
sub edi, dword [esi + 0x10]
push eax
push edi
push ebx
push dword [esi + 0x10]
call ecx
mov edx, dword [esi + 0x70]
mov eax, dword [edx]
xor eax, 2
or eax, dword [edx + 4]
jne 0x45c890
movss xmm0, dword [edx + 0x10]
movss xmm3, dword [edx + 0x18]
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x18]
ucomiss xmm3, xmm0
jbe 0x45c90a
movss xmm4, dword [edx + 0x14]
movss xmm2, dword [edx + 0x1c]
ucomiss xmm2, xmm4
jbe 0x45c90a
movss xmm1, dword [esi + 0x48]
lea eax, [edx + 0x28]
mov dword [esi], eax
lea eax, [edx + 0x10]
mov dword [esi + 0x10], eax
mulss xmm4, xmm1
mulss xmm3, xmm1
mulss xmm2, xmm1
mulss xmm0, xmm1
movss dword [esi + 0x30], xmm4
movss dword [esi + 0x98], xmm3
movss dword [esi + 0x28], xmm2
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esi + 0x184]
movss xmm1, dword [0x646154]
mov ecx, 0x7fffffff
mov edx, 0
movss xmm0, dword [esi + 0x184]
cvttss2si eax, xmm0
ucomiss xmm0, xmm1
cmova eax, ecx
ucomiss xmm0, xmm0
cmovp eax, edx
mov dword [esi + 0x34], eax
sub esp, 4
movss xmm0, dword [esi + 0x30]
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esi + 0x188]
mov ecx, 0x7fffffff
mov edx, 0
movss xmm0, dword [esi + 0x188]
ucomiss xmm0, dword [0x646154]
cvttss2si eax, xmm0
cmova eax, ecx
ucomiss xmm0, xmm0
cmovp eax, edx
mov dword [esi + 0x30], eax
sub esp, 4
movss xmm0, dword [esi + 0x98]
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esi + 0x18c]
mov edi, ebx
mov eax, 0x7fffffff
mov ecx, 0
movss xmm0, dword [esi + 0x18c]
ucomiss xmm0, dword [0x646154]
cvttss2si ebx, xmm0
cmova ebx, eax
ucomiss xmm0, xmm0
cmovp ebx, ecx
sub esp, 4
movss xmm0, dword [esi + 0x28]
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esi + 0x190]
mov ecx, 0x7fffffff
movss xmm0, dword [esi + 0x190]
mov edx, dword [esi + 0x34]
ucomiss xmm0, dword [0x646154]
cvttss2si eax, xmm0
cmova eax, ecx
ucomiss xmm0, xmm0
mov ecx, 0
cmovp eax, ecx
mov ecx, dword [esi + 4]
sub ebx, edx
sub edi, eax
sub eax, dword [esi + 0x30]
mov ecx, dword [ecx + 0x3b4]
add ecx, 8
push eax
push ebx
push edi
call fcn.004beadf
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x70]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esi]
movsd qword [esi + 0x1e0], xmm1
movsd qword [esi + 0x1d8], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x1e8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
dec edx
and edx, 0xfffffff8
lea edi, [edx + eax + 8]
push edi
call dword [ecx + 0xc]
add esp, 4
xor edx, 0x40be1ad2
xor eax, 0x12a79ea1
or eax, edx
jne 0x45c8a1
test edi, edi
je 0x45c8a1
movsd xmm1, qword [esi + 0x1e8]
movsd xmm0, qword [esi + 0x1f0]
movsd xmm2, qword [esi + 0x1d8]
mov ebx, dword [esi + 0x6c]
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x50]
movsd qword [esi + 0x4a8], xmm1
movsd xmm1, qword [esi + 0x1e0]
movsd qword [esi + 0x4b0], xmm0
movsd qword [esi + 0x498], xmm2
movsd qword [esi + 0x4a0], xmm1
movss xmm1, dword [esi + 0x48]
mov dword [esi + 0x4b8], ebx
mov dword [esi + 0x4bc], eax
movss dword [esi + 0x4c0], xmm1
mov dword [esi + 0x4c4], ecx
mov eax, dword [edi + 4]
push ecx
lea ecx, [esi + 0x498]
push ecx
push dword [edi]
call dword [eax + 0x14]
add esp, 0xc
jmp 0x45c8ee
mov ecx, dword [esi + 0x50]
mov edi, edx
call fcn.004958f5
mov edx, edi
mov edi, dword [esi + 4]
jmp 0x45c90a
mov eax, dword [0xa7101c]
mov ebx, dword [esi + 0x6c]
cmp eax, 2
jb 0x45c8ee
mov dword [esi + 0x498], 0x812bd0
mov dword [esi + 0x49c], 1
and dword [esi + 0x4a8], 0
mov dword [esi + 0x4a0], 0xa3a4e8
and dword [esi + 0x4a4], 0
lea ecx, [esi + 0x498]
push 2
pop edx
push 0x812bd8
call fcn.00565e75
pop eax
mov ecx, dword [esi + 0x50]
movss xmm0, dword [esi + 0x48]
mov edx, ebx
push dword [esi + 0x90]
call fcn.004956cf
pop ecx
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x70]
mov eax, dword [esi + 0x38]
add edx, 0x38
add eax, 0xffffffc8
jmp 0x45c46b
mov eax, dword [edi + 0x3b4]
cmp dword [edi + 0x3a4], 0
lea ecx, [eax + 8]
je 0x45cd69
xor edx, edx
call fcn.004be712
mov edi, dword [esi + 4]
mov edx, 0x8893
mov ecx, dword [edi + 0x3b4]
add ecx, 8
push 0
call fcn.004be6f4
pop eax
mov ecx, dword [edi + 0x3b4]
mov edx, 0xc11
add ecx, 8
call fcn.004be7a5
mov ecx, dword [esi + 0x404]
mov eax, dword [esi + 0x3fc]
shl ecx, 4
test ecx, ecx
je 0x45cab1
mov dword [esi + 0x10], ecx
mov ecx, dword [eax]
mov edx, dword [esi + 4]
mov edi, dword [eax + 4]
mov ebx, dword [eax + 0xc]
mov dword [esi], eax
mov eax, dword [eax + 8]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x498], ecx
mov ecx, dword [esi + 4]
mov edx, dword [edx + 0x374]
mov dword [esi + 0x49c], edi
mov dword [esi + 0x4a0], eax
mov dword [esi + 0x4a4], ebx
mov ecx, dword [ecx + 0x370]
push ebx
mov ebx, dword [esi + 4]
push eax
push edi
push dword [esi + 0x18]
push dword [ebx + 0x37c]
push dword [ebx + 0x378]
call fcn.00494932
add esp, 0x18
mov ecx, dword [esi + 0x50]
mov edi, edx
mov edx, eax
lea eax, [esi + 0x498]
push eax
push edi
call fcn.00494d3d
pop ecx
pop edx
test eax, eax
je 0x45caa1
mov ecx, eax
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x360]
mov eax, edi
sub eax, ecx
cdq
push 0x18
pop ebx
idiv ebx
pcmpeqd xmm1, xmm1
mov edx, eax
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
add eax, 0xfffffff0
and eax, dword [edx + 0x364]
movdqu xmm0, xmmword [edi + eax]
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb edx, xmm0
test edx, edx
je 0x45ca39
bsr bx, dx
xor ebx, 0xf
jmp 0x45ca3d
mov bx, 0x10
mov edx, dword [esi + 0x18]
movdqu xmm0, xmmword [edi + edx]
pcmpeqb xmm0, xmm1
pmovmskb edx, xmm0
or edx, 0x10000
bsf edx, edx
add ebx, edx
mov dl, 0x80
cmp bx, 0xf
ja 0x45ca6b
mov edx, dword [esi + 4]
inc dword [edx + 0x368]
mov dl, 0xff
mov ebx, dword [esi + 0x18]
mov byte [edi + ebx], dl
mov byte [eax + edi + 0x10], dl
mov eax, dword [esi + 4]
dec dword [eax + 0x36c]
mov eax, dword [ecx - 0x18]
xor eax, 2
or eax, dword [ecx - 0x14]
je 0x45caa1
mov edx, dword [ecx - 8]
test edx, edx
je 0x45caa1
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x3b4]
add ecx, 8
call fcn.004be77f
mov eax, dword [esi]
mov ecx, dword [esi + 0x10]
add eax, 0x10
add ecx, 0xfffffff0
jmp 0x45c970
mov eax, dword [esi + 4]
cmp byte [eax + 0x10e], 0
je 0x45cc11
mov eax, dword [esi + 0x6c]
mov edi, dword [esi + 0x90]
mov ebx, dword [esi + 4]
lea eax, [eax*4]
mov byte [ebx + 0x10e], 0
imul edi, eax
xor edx, edx
mov dword [esi], eax
inc edx
mov ecx, edi
call fcn.004bddb8
mov ecx, dword [ebx + 0x3b4]
mov dword [esi + 0x70], edx
mov edx, dword [ecx + 0x788]
test edx, edx
je 0x45d0ea
test eax, eax
mov ecx, eax
mov dword [esi + 0x18], eax
cmove ecx, edi
push ecx
push 0x1401
push 0x1908
push dword [esi + 0x90]
mov ebx, dword [esi + 0x6c]
push ebx
push 0
push 0
call edx
mov ecx, edi
call fcn.004a4b51
mov dword [esi + 0x1d8], eax
mov dword [esi + 0x1dc], edx
and dword [esi + 0x1e0], 0
cmp dword [esi], 0
je 0x45d0f4
mov eax, edi
xor edx, edx
and ebx, 0x3fffffff
div dword [esi]
mov dword [esi + 0x38], ebx
sub edi, edx
sub edi, dword [esi]
mov ecx, dword [esi + 0x18]
jb 0x45cba8
lea eax, [ecx + edi]
mov dword [esi + 0x50], edi
mov edi, dword [esi + 0x38]
lea ecx, [esi + 0x1d8]
mov dword [esi + 0x10], eax
mov edx, edi
call fcn.004a4b9c
mov ebx, dword [esi + 0x1e0]
lea eax, [ebx*4]
add eax, dword [esi + 0x1d8]
push dword [esi]
push dword [esi + 0x10]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
mov edi, dword [esi + 0x50]
mov dword [esi + 0x1e0], ebx
jmp 0x45cb5a
mov eax, dword [esi + 0x1e0]
movsd xmm0, qword [esi + 0x1d8]
mov edx, dword [esi + 0x70]
mov dword [esi + 0x4a0], eax
movsd qword [esi + 0x498], xmm0
call fcn.004bdbce
mov edi, dword [esi + 4]
mov eax, dword [esi + 0x4a0]
movsd xmm0, qword [esi + 0x498]
mov ebx, dword [esi + 0x90]
mov edx, dword [edi + 0x128]
mov ecx, dword [edi + 0x124]
mov dword [edi + 0x12c], eax
mov eax, dword [esi + 0x6c]
movsd qword [edi + 0x124], xmm0
mov dword [edi + 0x130], eax
mov dword [edi + 0x134], ebx
call fcn.0045e048
mov edi, dword [esi + 4]
mov eax, dword [edi + 0x3c8]
mov ebx, dword [edi + 0x3cc]
mov dword [esi], eax
mov eax, dword [esi + 0x8c]
mov ecx, dword [eax + 4]
call fcn.0045e4ac
mov ecx, dword [ebx + 0x34]
mov dword [esi + 0x498], eax
lea eax, [edi + 0xb0]
mov dword [esi + 0x49c], edx
push eax
lea eax, [esi + 0x498]
push eax
push dword [esi]
call ecx
add esp, 0xc
mov eax, edi
xor ecx, ecx
add edi, 0x348
mov edx, str.failed_to_get_surface_to_swap_buffers
cmp dword [eax + 0x348], 5
mov ebx, eax
cmove edi, ecx
mov ecx, edi
push 0x811248
push 0x25
call fcn.0045f36b
pop ecx
pop edx
mov eax, ebx
add ebx, 0x320
mov edx, str.failed_to_get_current_context_to_swap_buffers
cmp dword [eax + 0x320], 2
mov eax, 0
cmove ebx, eax
mov ecx, ebx
push 0x811288
push 0x2d
call fcn.0045f36b
pop ecx
pop edx
cmp dword [edi], 4
mov eax, dword [ebx]
jne 0x45cce9
test eax, eax
je 0x45d0cd
push dword [edi + 0x10]
call dword [sym.imp.gdi32.dll_SwapBuffers]
mov ebx, dword [esi + 4]
test eax, eax
jne 0x45cd35
call dword [sym.imp.kernel32.dll_GetLastError]
lea edx, [esi + 0x498]
lea ecx, [esi + 0x1d8]
mov byte [edx], 0
mov dword [edx + 4], eax
call fcn.004c6ac4
jmp 0x45cd20
test eax, eax
jne 0x45d0cd
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x10]
call fcn.004c6012
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x3c]
push dword [edi + 0x10]
push dword [eax + 0xc]
call dword [ecx + 0x18c]
mov ebx, dword [esi + 4]
test eax, eax
jne 0x45cd35
lea ecx, [esi + 0x1d8]
call fcn.004c4938
mov eax, dword [esi + 0x1d8]
xor eax, 2
or eax, dword [esi + 0x1dc]
jne 0x45d116
mov al, byte [ebx + 0x111]
mov byte [ebx + 0x111], 2
cmp al, 2
je 0x45cd58
mov ecx, dword [esi + 0x8c]
xor edx, edx
test al, al
setne dl
call fcn.0045f386
cmp byte [ebx + 0x222], 0
je 0x45cdaa
mov dword [esi], 0x3b9aca04
jmp 0x45cdcf
mov dword [esi], eax
mov edx, 0x8892
push 0
call fcn.004be6f4
pop eax
mov ebx, dword [edi + 0x398]
imul edi, dword [edi + 0x3a0], 0x18
test edi, edi
je 0x45c935
mov ecx, dword [esi]
mov eax, dword [ebx]
mov ecx, dword [ecx + 0x270]
test ecx, ecx
je 0x45d09f
add ebx, 0x18
push eax
call ecx
add edi, 0xffffffe8
jmp 0x45cd85
mov eax, dword [esi + 0xfc]
or eax, dword [esi + 0xf8]
jne 0x45ceab
cmp dword [esi + 0xf4], 0
jne 0x45ceab
mov dword [esi], 0x3b9aca02
mov eax, dword [ebx + 0x3c8]
mov dword [esi + 0x50], eax
mov eax, dword [ebx + 0x3cc]
mov dword [esi + 0x10], eax
call fcn.005f2e70
mov edi, ecx
mov ecx, eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x70], edx
push dword [ebx + 0x1f0]
push dword [ebx + 0x1ec]
push dword [ebx + 0x1e8]
mov dword [esi + 0x40], edi
push edi
call fcn.005f3650
add esp, 0x10
mov ebx, eax
mov edi, edx
mov dword [esi + 0x18], ecx
push dword [esi + 0x50]
mov eax, dword [esi + 0x10]
call dword [eax + 0x1c]
add esp, 4
mov dword [esi + 0x50], ecx
mov ecx, ebx
cmp ebx, eax
mov ebx, edi
sbb ebx, edx
mov ebx, dword [esi + 4]
jb 0x45ce5c
xor ecx, eax
xor edi, edx
or edi, ecx
jne 0x45ce41
mov eax, dword [esi + 0x50]
cmp dword [esi + 0x18], eax
jbe 0x45ce5c
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x70]
mov ecx, dword [esi + 0x40]
mov dword [ebx + 0x1e8], eax
mov dword [ebx + 0x1ec], edx
mov dword [ebx + 0x1f0], ecx
cmp byte [ebx + 0x45c], 0
jne 0x45ce6c
push 0xa
call sub.kernel32.dll_Sleep
mov edi, dword [esi + 0x44]
mov edx, dword [esi + 0x68]
mov ecx, edi
call fcn.004a04d7
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.004a6402
lea ecx, [esi + 0x3f0]
call fcn.0045e053
mov ecx, dword [esi]
mov eax, dword [esi + 0x34]
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x940]
mov dword fs:[0], edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.005f2e70
mov edi, ecx
mov ecx, eax
push dword [esi + 0xf4]
push dword [esi + 0xf8]
push dword [esi + 0xfc]
push edi
call fcn.005f3530
add esp, 0x10
mov dword [esi + 0x34], eax
mov dword [esi + 0x28], edx
mov dword [esi], ecx
jmp 0x45cdcf
call fcn.005f76b0
jmp 0x45a9e4
push dword [ebx + 4]
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0x27
pop ecx
jmp 0x45a475
push dword [ebx + 0xc]
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0x27
pop ecx
jmp 0x45a490
push dword [ebx + 0x14]
call dword [sym.imp.kernel32.dll_CloseHandle]
jmp 0x45a4ac
lea ecx, [esi + 0x320]
jne 0x45a759
add ebx, dword [esi + 0x88]
lea edx, [esi + 0x498]
mov dword [edx], 0xa38b20
mov dword [esi + 0x320], ebx
mov dword [esi + 0x324], eax
lea eax, [esi + 0x110]
mov dword [esi + 0x1d8], eax
mov eax, fcn.0042d43d
mov dword [esi + 0x1dc], eax
mov dword [esi + 0x1e0], ecx
mov dword [esi + 0x1e4], eax
push 2
pop eax
mov dword [edx + 4], eax
and dword [edx + 0x10], 0
lea ecx, [esi + 0x1d8]
lea edi, [esi + 0x2f0]
mov dword [edx + 8], ecx
mov ecx, edi
mov dword [edx + 0xc], eax
call fcn.0043b2f0
mov ebx, dword [edi]
mov ecx, dword [edi + 8]
jmp 0x459ef6
push 9
pop edx
mov ecx, str.glScissorglScissor
jmp 0x45d0a7
lea ecx, [esi + 0x498]
mov edx, 0x9b3598
mov dword [ecx], str.capacity_overflowcreating_a_new_thread_ID____would_exceed_the_maximum_number_of_thread_ID_bits_specified_in___
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
jmp 0x45cfed
lea ecx, [esi + 0x320]
mov dword [ecx], str.capacity_overflowcreating_a_new_thread_ID____would_exceed_the_maximum_number_of_thread_ID_bits_specified_in___
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
mov edx, 0xa0ac88
call fcn.0063cbf0
ud2
mov dword [esi + 0x498], 0x812c60
mov dword [esi + 0x49c], 1
mov dword [esi + 0x4a0], 0xa3a4e8
and dword [esi + 0x4a4], 0
and dword [esi + 0x4a8], 0
lea edx, [esi + 0x320]
xor ecx, ecx
push 0x812c68
jmp 0x45d087
push 0xd
pop edx
mov ecx, str.glGenTexturesglGenTextures
jmp 0x45d0a7
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa380d0
call fcn.0063cd70
pop eax
ud2
mov dword [esi + 0x498], 0x812c60
mov dword [esi + 0x49c], 1
mov dword [esi + 0x4a0], 0xa3a4e8
and dword [esi + 0x4a4], 0
and dword [esi + 0x4a8], 0
lea edx, [esi + 0x320]
xor ecx, ecx
push 0x812c78
lea eax, [esi + 0x498]
push eax
lea eax, [esi + 0x1d8]
push eax
call fcn.006409c3
add esp, 0xc
ud2
push 0x1a
pop edx
mov ecx, str.glDisableVertexAttribArrayglDisableVertexAttribArray
call fcn.0063f38a
ud2
call fcn.0043aad0
ud2
push 0xc
pop edx
mov ecx, str.glClearColorglClearColor
jmp 0x45d0a7
push 7
pop edx
mov ecx, str.glClearglClear
jmp 0x45d0a7
ud2
push 0x28
pop edx
mov ecx, str.internal_error:_entered_unreachable_codecannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_8ede3aae28fe6e4d52b38157d7bfe0d3bceef225library_std_src_threadlocal.rs
push 0x80bf74
jmp 0x45d046
lea ecx, [esi + 0x420]
jmp 0x45cfcc
push 0xc
pop edx
mov ecx, str.glReadPixelsglReadPixels
jmp 0x45d0a7
lea ecx, [esi + 0x498]
mov edx, 0x812d10
mov dword [ecx], 0x9f48f0
jmp 0x45cfae
mov edx, dword [esi + 0x18]
mov ecx, ebx
call fcn.0063c970
ud2
push 0x28
lea eax, [esi + 0x1d8]
push eax
lea edi, [esi + 0x498]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x8113ac
push 0x80ac3c
push edi
jmp 0x45d171
mov cl, byte [esi + 8]
mov eax, dword [esi + 0x68]
and cl, 1
mov dword [esi + 0x498], eax
mov byte [esi + 0x49c], cl
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x7fc8c4
push 0x7fc498
lea eax, [esi + 0x498]
push eax
call fcn.0063cff0
jmp 0x45d09a
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa380e0
jmp 0x45d046
mov ecx, eax
mov edx, 0x200
push 0xa381dc
call fcn.0063cd00
jmp 0x45d04b