Function at 0x440d44
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x490
mov edi, edx
mov edx, dword [edx + 0x280]
lea esi, [esp + 0xf0]
mov dword [esp + 0x88], ecx
call 0x440d6e
pop eax
mov ecx, esi
mov dword [esp + 0x2b8], eax
add edx, 8
call fcn.004106a4
mov ecx, esi
mov edx, 0x4b979c
call fcn.004376a9
mov ecx, dword [eax + 0x174]
movzx edx, dl
or ecx, dword [eax + 0x17c]
je 0x440da6
mov ecx, eax
call fcn.0042b7d4
jmp 0x440dcc
mov esi, dword [eax + 0x194]
mov ecx, eax
call fcn.0042b7d4
cmp esi, 1
ja 0x440dcc
mov edx, dword [edi + 0x280]
lea ecx, [edi + 0x218]
add edx, 8
call fcn.004493f3
mov eax, dword [edi + 0x248]
mov dword [esp + 0x14], edi
cmp eax, 2
jne 0x440de8
mov dword [esp + 0xf8], 2
jmp 0x440e37
test eax, eax
mov eax, dword [edi + 0x24c]
mov edx, dword [edi + 0x250]
lea ecx, [edi + 0x248]
lea esi, [edi + 0x240]
mov dword [esp + 0x28], ecx
je 0x440e0f
mov ecx, eax
call fcn.00431c43
push esi
push eax
call dword [edx + 0x38]
add esp, 8
mov ebx, edx
mov edx, dword [esp + 0x28]
lea esi, [esp + 0xf8]
mov edi, eax
mov ecx, esi
call fcn.0048c8b2
mov dword [esi - 8], edi
mov edi, dword [esp + 0x14]
mov dword [esi - 4], ebx
movsd xmm0, qword [esp + 0x100]
movsd xmm2, qword [esp + 0xf0]
movsd xmm1, qword [esp + 0xf8]
mov eax, dword [edi + 0x258]
movsd qword [esp + 0x338], xmm0
movsd qword [esp + 0x330], xmm1
movsd qword [esp + 0x328], xmm2
mov dword [esp + 0x340], eax
cmp dword [esp + 0x330], 2
je 0x440e97
lea ecx, [esp + 0x330]
lea edx, [esp + 0x328]
call fcn.0048c8ed
lea eax, [edi + 0x218]
mov dword [esp + 0x400], 2
and dword [esp + 0x410], 0
mov dword [esp + 0xe4], eax
lea eax, [edi + 0xc8]
mov dword [esp + 0x28], eax
lea eax, [edi + 0x288]
mov dword [esp + 0xe0], eax
mov dword [esp + 0x1c], eax
movzx eax, byte [edi + 0x278]
test eax, eax
je 0x440f23
cmp eax, 1
jne 0x442606
mov esi, dword [edi + 0x27c]
mov bl, byte [edi + 0x279]
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0xf0]
push dword [ebp + 8]
call fcn.0044942a
pop eax
cmp byte [esp + 0xf0], 5
jne 0x440f9b
mov byte [esp + 0x1f0], 5
mov al, 5
jmp 0x4410c7
lea ecx, [esp + 0x2e0]
mov edx, edi
push dword [ebp + 8]
call fcn.00442934
pop eax
movzx eax, byte [esp + 0x2e0]
cmp eax, 4
je 0x441318
mov esi, dword [esp + 0x2f0]
mov ecx, dword [esp + 0x2f4]
mov bl, byte [esp + 0x2e1]
mov edx, dword [esp + 0x2e4]
mov edi, dword [esp + 0x2e8]
cmp al, 3
mov dword [esp + 0x2bc], esi
mov esi, dword [esp + 0x2ec]
mov dword [esp + 0x2c0], ecx
jne 0x440fd3
mov edi, dword [esp + 0x14]
mov word [edi + 0x278], 0x101
and dword [edi + 0x27c], 0
jmp 0x440ed2
mov eax, dword [esp + 0xf0]
cmp al, 4
jne 0x4410b2
mov eax, dword [edi + 0x19c]
push dword [ebp + 8]
push dword [edi + 0x198]
lea ecx, [esp + 0x1f8]
push ecx
call dword [eax + 0x18]
add esp, 0xc
mov al, byte [esp + 0x1f0]
jmp 0x4410c7
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x18], bl
mov dword [esp + 8], edx
mov ebx, dword [ecx + 0x280]
mov edx, dword [ecx + 0x284]
add edx, 8
add ebx, 8
test eax, eax
mov dword [esp + 0x24], edx
je 0x4410f7
cmp eax, 1
jne 0x442773
mov ecx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
mov dword [esp + 0x348], edi
mov dword [esp + 0x34c], esi
lea edx, [esp + 0x348]
mov dword [esp + 0x354], ecx
lea ecx, [esp + 0x1f8]
mov dword [esp + 0x350], eax
call fcn.004090ea
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov al, byte [esp + 0x18]
cmp dword [edi + 0x218], 0
mov dword [esp + 0x1f4], ecx
mov byte [esp + 0x1f1], al
mov byte [esp + 0x1f0], 1
je 0x4411a3
cmp dword [edi + 0x220], ecx
jne 0x4411a3
mov al, byte [esp + 0x18]
mov byte [edi + 0x278], 1
mov byte [edi + 0x279], al
mov dword [edi + 0x27c], ecx
lea ecx, [esp + 0x1f0]
call fcn.004379a8
lea ecx, [esp + 0x348]
call fcn.0041c807
jmp 0x440ed2
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], ecx
cmp al, 5
je 0x442861
mov edx, dword [esp + 0x1f0]
cmp dl, 4
jne 0x4426aa
mov byte [edi + 0x278], 2
mov byte [edi + 0x279], bl
mov dword [edi + 0x27c], esi
jmp 0x440ed2
lea ecx, [esp + 0xf0]
mov edx, ebx
mov dword [esp + 0x38], edi
mov esi, ecx
call fcn.004106a4
mov ecx, esi
mov edx, 0x4b9668
call fcn.004376a9
mov ebx, dword [esp + 8]
mov esi, eax
mov byte [esp + 0x3c], dl
add eax, 8
lea ecx, [esp + 0x1f0]
lea edx, [esi + 0x128]
mov dword [esp + 0x18], eax
mov dword [esp + 0x8c], edx
push ebx
call fcn.00418f4a
pop eax
cmp dword [esp + 0x1f0], 0
mov dword [esp + 0x10], esi
je 0x44123d
mov ecx, dword [esi + 0x190]
mov edx, ebx
lea edi, [esp + 0xf0]
call fcn.0041160d
test al, al
je 0x441259
cmp dword [esi + 0xb8], 0
jne 0x441275
cmp dword [esi + 0xbc], ebx
ja 0x441275
lea eax, [ebx + 2]
mov edx, eax
shr edx, 0x1f
mov dword [esi + 0xb8], edx
mov dword [esi + 0xbc], eax
jmp 0x441275
movsd xmm0, qword [esp + 0x200]
movsd xmm2, qword [esp + 0x1f0]
movsd xmm1, qword [esp + 0x1f8]
mov edx, dword [esp + 0x24]
lea esi, [esp + 0xf0]
mov ecx, ebx
movsd qword [esp + 0x100], xmm0
movsd qword [esp + 0xf8], xmm1
movsd qword [esp + 0xf0], xmm2
push esi
call fcn.0044aa63
pop eax
movsd xmm0, qword [esp + 0x348]
movsd xmm1, qword [esp + 0x350]
mov ecx, ebx
movsd qword [esp + 0xf8], xmm1
movsd qword [esp + 0xf0], xmm0
call fcn.00449ce9
mov ecx, dword [esp + 8]
mov dword [esp + 0x100], eax
mov edx, esi
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0xe4]
call fcn.0041776a
jmp 0x440ed2
mov ecx, dword [esp + 0x1f4]
mov edx, dword [esp + 0x1f8]
call fcn.0041913f
lea esi, [esp + 0x1f0]
jmp 0x441294
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
jne 0x441275
cmp dword [esi + 0xc], ebx
ja 0x441275
lea eax, [ebx + 2]
mov edx, eax
shr edx, 0x1f
mov dword [esi + 8], edx
mov dword [esi + 0xc], eax
mov edx, ebx
mov ecx, edi
push 0
push 0
call fcn.00419239
pop eax
pop ecx
lea esi, [esp + 0x1f0]
mov edx, edi
mov ecx, esi
call fcn.0041917c
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xf0], ecx
mov ecx, esi
call fcn.00421e86
mov ecx, esi
mov edx, 0x4b9818
call fcn.004376e1
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov esi, eax
add eax, 8
mov byte [esp + 8], dl
lea edx, [esp + 0xf0]
mov edi, ebx
add edi, 0x170
push eax
push edi
push 1
push dword [esp + 0x44]
call fcn.00438c9f
add esp, 0x10
movzx edx, byte [esp + 8]
mov ecx, esi
call fcn.0042b7d4
movzx edx, byte [esp + 0x3c]
mov ecx, ebx
call fcn.0042b7d4
mov edi, dword [esp + 0x14]
jmp 0x440ed2
mov edx, dword [edi + 0x280]
lea ebx, [esp + 0xf0]
mov ecx, ebx
add edx, 8
call fcn.004106a4
mov ecx, ebx
mov edx, 0x4b973c
call fcn.004376a9
mov byte [esp + 0x4b], dl
mov edx, dword [edi + 0x284]
mov ecx, ebx
mov esi, eax
add edx, 8
call fcn.00421e86
mov ecx, ebx
mov edx, 0x4b985c
call fcn.004376e1
mov byte [esp + 4], dl
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov edi, eax
mov dword [esp + 8], ecx
call fcn.00411e9a
cmp eax, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x34], edi
jne 0x441414
mov esi, edx
mov edx, dword [esp + 0x28]
mov ecx, ebx
push dword [ebp + 8]
call fcn.00449d1b
pop eax
cmp byte [esp + 0xf0], 5
jne 0x4413a5
mov bl, 5
jmp 0x442536
mov eax, dword [esp + 0xf0]
cmp al, 4
jne 0x4415a8
mov ecx, dword [esp + 0x28]
and dword [esp + 0xf4], 0
mov edx, ebx
mov dword [esp + 0xf8], esi
mov byte [esp + 0xf0], 7
call fcn.00449f10
movzx ecx, al
mov edx, str.invalid_WINDOW_UPDATE_frame
push 0x4b93c8
push 0x1b
call fcn.0044a940
pop eax
pop ecx
mov edx, dword [esp + 8]
mov ecx, 1
add edx, esi
jo 0x441402
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [eax + 0x28], edx
mov edx, 0x4b93d8
call fcn.0044aa39
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x34]
lea ecx, [esi + 0x128]
lea eax, [edi + 8]
lea edx, [esi + 0x170]
mov dword [esp + 8], ecx
lea ecx, [esi + 0x30]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x28]
mov ecx, ebx
push dword [ebp + 8]
call fcn.00449d1b
pop eax
cmp byte [esp + 0xf0], 5
mov edi, dword [esp + 0x14]
je 0x441579
mov eax, dword [esp + 0xf0]
cmp al, 4
jne 0x4415ac
mov edx, dword [esp + 0x24]
mov ecx, ebx
push dword [esp + 8]
call fcn.00418fd3
pop eax
cmp dword [esp + 0xf0], 0
je 0x441580
mov eax, dword [esp + 0xf8]
movsd xmm0, qword [esp + 0xf0]
lea esi, [esp + 0x1f0]
mov ecx, esi
mov dword [esp + 0x1f8], eax
movsd qword [esp + 0x1f0], xmm0
call fcn.0041109a
mov ebx, dword [eax + 0x18]
mov ecx, esi
call fcn.0041109a
lea ecx, [eax + 0x20]
call fcn.00411ebc
test al, al
je 0x441555
mov ecx, esi
call fcn.0041109a
mov ecx, dword [eax + 0x48]
mov edx, dword [eax + 0x4c]
call fcn.00411e9a
cmp eax, 1
jne 0x441555
mov ecx, esi
mov edi, edx
call fcn.0041109a
mov eax, dword [eax + 0xcc]
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0xf0]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], edi
mov byte [esp + 0xf0], 7
call fcn.00449f10
movzx ecx, al
mov edx, str.invalid_WINDOW_UPDATE_frame
push 0x4b9388
push 0x1b
call fcn.0044a940
pop eax
pop ecx
mov ecx, esi
call fcn.00411082
add edi, dword [eax + 0x48]
mov ecx, 1
jo 0x441544
xor ecx, ecx
mov dword [eax + 0x48], edi
mov edx, 0x4b93b8
call fcn.0044aa39
lea esi, [esp + 0x1f0]
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp ebx, 0x3b9aca00
mov edx, esi
setne al
push eax
call fcn.004112ed
pop eax
lea ebx, [esp + 0xf0]
jmp 0x441436
mov bl, 5
jmp 0x44254a
mov edx, dword [esp + 0x28]
mov ecx, ebx
push dword [ebp + 8]
call fcn.00449d1b
pop eax
cmp byte [esp + 0xf0], 5
mov bl, 5
jne 0x4415cd
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
jmp 0x4424e2
mov edi, dword [esp + 0x14]
mov bl, 5
cmp al, 5
je 0x44254a
mov ecx, dword [esp + 0xf4]
mov edx, eax
mov ebx, eax
shrd edx, ecx, 8
shr ecx, 8
jmp 0x44253c
mov ebx, dword [esp + 0xf0]
cmp bl, 4
jne 0x442493
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
lea ecx, [esi + 0xc0]
mov dword [esp + 0x38], ecx
push edi
push dword [esp + 0xc]
call fcn.00449d71
mov ecx, esi
add esp, 8
mov eax, dword [edi + 0x188]
mov edx, esi
lea ebx, [esi + 0xe8]
add edx, 0x108
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x2b0], edx
mov dword [esp + 0x8c], eax
mov eax, dword [ecx + 0x170]
mov ebx, dword [esp + 0x3c]
cmp eax, dword [ecx + 0x174]
jbe 0x4417ac
mov edx, dword [esp + 0x2b4]
lea ecx, [esp + 0x1f0]
push dword [esp + 8]
call fcn.00417c20
pop eax
cmp dword [esp + 0x1f0], 0
je 0x4417ac
mov eax, dword [esp + 0x1f8]
movsd xmm0, qword [esp + 0x1f0]
mov ecx, dword [esp + 0x18]
lea esi, [esp + 0xf0]
mov edx, esi
mov dword [esp + 0xf8], eax
movsd qword [esp + 0xf0], xmm0
call fcn.00417846
mov ecx, esi
call fcn.00411082
mov ecx, eax
call fcn.00412543
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
test eax, eax
mov dword [esp + 0x34c], edx
mov dword [esp + 0x348], ecx
je 0x4417ac
mov ecx, dword [esp + 0x34c]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x348]
mov dword [esp + 0xf8], ecx
lea ecx, [esp + 0xf0]
mov dword [esp + 0xf4], eax
call fcn.0041109a
cmp byte [eax + 0xe1], 0
jne 0x4417ac
lea esi, [esp + 0xf0]
mov ecx, esi
call fcn.00411082
mov ecx, dword [esp + 0x38]
mov byte [eax + 0xe1], 1
cmp dword [ecx], 0
je 0x441778
mov ebx, dword [esp + 0x10]
mov ecx, esi
mov eax, dword [ebx + 0xc4]
mov edi, dword [ebx + 0xc8]
mov dword [esp + 0x24], eax
call fcn.00411082
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x58], 1
mov dword [eax + 0x5c], ecx
mov dword [eax + 0x60], edi
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
mov dword [ebx + 0xc4], eax
mov dword [ebx + 0xc8], ecx
mov ebx, dword [esp + 0x3c]
jmp 0x4417ac
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x10]
mov dword [edx + 0xc0], 1
mov dword [edx + 0xc4], eax
mov dword [edx + 0xc8], ecx
mov dword [edx + 0xcc], eax
mov dword [edx + 0xd0], ecx
mov dword [esp + 0x3c0], 2
and dword [esp + 0x3d0], 0
mov edx, dword [esp + 0x38]
lea esi, [esp + 0x2f8]
mov ecx, esi
push dword [esp + 8]
call fcn.0041908f
pop eax
cmp dword [esp + 0x2f8], 0
je 0x441a19
mov eax, dword [esp + 0x300]
movsd xmm0, qword [esp + 0x2f8]
mov dword [esp + 0x3e0], 2
and dword [esp + 0x3f0], 0
mov ecx, esi
mov dword [esp + 0x68], eax
movsd qword [esp + 0x60], xmm0
call fcn.0041109a
mov eax, dword [eax + 0x18]
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.00411082
lea edx, [eax + 0x64]
lea ecx, [esp + 0x1f0]
push ebx
call fcn.00438e9c
pop eax
movzx eax, byte [esp + 0x1f0]
cmp eax, 9
jne 0x441895
lea ecx, [esp + 0x60]
call fcn.0041109a
cmp byte [eax + 0x20], 5
je 0x441d66
mov ecx, dword [esp + 0x68]
xor eax, eax
cmp dword [esp + 0x24], 0x3b9aca00
movsd xmm0, qword [esp + 0x60]
lea edx, [esp + 0xf0]
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x18]
setne al
movsd qword [esp + 0xf0], xmm0
push eax
call fcn.004112ed
pop eax
jmp 0x4419dd
test eax, eax
jne 0x441a3a
lea eax, [esp + 0x1f8]
lea ecx, [esp + 0x60]
movsd xmm1, qword [eax + 0x10]
movsd xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
movsd qword [esp + 0xb8], xmm1
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0xc0], xmm0
movsd qword [esp + 0xa8], xmm2
movsd qword [esp + 0xb0], xmm1
call fcn.0041109a
mov edi, dword [eax + 0x3c]
lea ecx, [esp + 0xa8]
call fcn.00439b09
xor esi, esi
test eax, eax
mov ecx, 0
je 0x441904
test edi, edi
mov ecx, eax
je 0x441976
mov eax, dword [esp + 0x8c]
lea ebx, [esp + 0x60]
cmp ecx, eax
cmovae ecx, eax
test edi, edi
cmovle edi, esi
cmp ecx, edi
cmovb edi, ecx
test edi, edi
je 0x441be3
mov ecx, ebx
call fcn.0041109a
mov eax, dword [eax + 0x38]
mov ecx, 0
mov esi, edi
test eax, eax
cmovle eax, ecx
cmp edi, eax
jbe 0x441be3
mov ecx, ebx
call fcn.00411082
movsd xmm1, qword [esp + 0xb8]
lea ecx, [eax + 0x64]
lea eax, [esp + 0xf4]
movsd xmm0, qword [esp + 0xc0]
movsd xmm2, qword [esp + 0xa8]
mov ebx, dword [esp + 0x3c]
jmp 0x4419a4
lea ecx, [esp + 0x60]
call fcn.00411082
movsd xmm1, qword [esp + 0xb8]
lea ecx, [eax + 0x64]
lea eax, [esp + 0xf4]
movsd xmm0, qword [esp + 0xc0]
movsd xmm2, qword [esp + 0xa8]
movsd qword [eax + 0x14], xmm1
movsd xmm1, qword [esp + 0xb0]
movsd qword [eax + 0x1c], xmm0
movsd qword [eax + 4], xmm2
movsd qword [eax + 0xc], xmm1
mov byte [esp + 0xf0], 0
lea eax, [esp + 0xf0]
mov edx, ebx
push eax
call fcn.0044a9ba
pop eax
mov edi, dword [esp + 0x14]
movzx eax, byte [esp + 0x1f0]
cmp eax, 9
je 0x4419ff
test eax, eax
je 0x4419ff
cmp eax, 3
je 0x4419ff
lea ecx, [esp + 0x1f0]
call fcn.004367b0
lea esi, [esp + 0x3d8]
mov ecx, esi
call fcn.0041230e
mov ecx, esi
call fcn.00437a9f
jmp 0x4417bf
lea esi, [esp + 0x3b8]
mov ecx, esi
call fcn.0041230e
mov ecx, esi
call fcn.00437a9f
lea ebx, [esp + 0xf0]
jmp 0x442160
cmp eax, 3
jne 0x441db8
mov eax, dword [esp + 0x1f8]
lea ecx, [esp + 0x221]
mov esi, dword [esp + 0x210]
mov bl, byte [esp + 0x22c]
mov bh, byte [esp + 0x22d]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x1fc]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x214]
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0xb0], xmm1
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x218]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 3]
mov dword [esp + 0x1eb], eax
mov eax, dword [ecx]
mov dword [esp + 0x1e8], eax
mov al, byte [esp + 0x220]
mov byte [esp + 5], al
mov eax, dword [esp + 0x21c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x228]
mov dword [esp + 0x50], eax
mov al, byte [esp + 0x22e]
mov dword [esp + 0x1c], eax
push 0x6d
lea eax, [esp + 0x233]
push eax
lea eax, [esp + 0xf8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x2a0]
mov edi, dword [esp + 0x29c]
mov ecx, dword [esp + 0x2a4]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x2a8], eax
lea eax, [esp + 0x2c4]
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0xdc], edi
mov dword [esp + 0x2c4], edi
lea ecx, [esp + 0x304]
push eax
call fcn.00418cd3
pop eax
cmp dword [esp + 0x304], 0
je 0x4428fc
mov eax, dword [esp + 0x30c]
movsd xmm0, qword [esp + 0x304]
lea edi, [esp + 0x2d0]
mov ecx, edi
mov dword [esp + 0x2d8], eax
movsd qword [esp + 0x2d0], xmm0
call fcn.00411082
mov ecx, edi
mov byte [eax + 0xe5], 0
call fcn.0041109a
cmp dword [eax + 0x64], 0
mov edi, dword [esp + 0x4c]
je 0x441f3c
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x170]
cmp eax, dword [ecx + 0x174]
jbe 0x441f2c
mov ecx, dword [esp + 0x18]
lea edi, [esp + 0x2d0]
mov edx, edi
call fcn.00417846
mov ecx, dword [esp + 0x38]
mov edx, edi
mov edi, dword [esp + 0x4c]
call fcn.0041228a
jmp 0x441f3c
mov dword [esp + 0xf8], 2
and dword [esp + 0x108], 0
mov ecx, ebx
call fcn.00411082
mov edi, eax
mov eax, dword [esp + 0x10]
mov edx, 0
mov ebx, dword [edi + 0x3c]
lea ecx, [edi + 0x38]
mov eax, dword [eax + 0x114]
test ebx, ebx
cmovle ebx, edx
cmp ebx, eax
mov dword [esp + 0x1c], eax
cmovae ebx, eax
sub ebx, dword [edi + 0xd8]
cmovb ebx, edx
mov edx, esi
call fcn.0041789e
mov ecx, dword [edi + 0xd8]
mov eax, dword [edi + 0x3c]
mov edx, 0
sub ecx, esi
mov dword [edi + 0xd8], ecx
sub dword [edi + 0xd4], esi
test eax, eax
cmovle eax, edx
mov edx, dword [esp + 0x1c]
cmp eax, edx
cmovae eax, edx
mov edx, 0
sub eax, ecx
cmovb eax, edx
cmp ebx, eax
jae 0x441c71
mov ecx, edi
call fcn.00412537
mov ecx, dword [esp + 0x10]
lea edi, [esp + 0xf0]
mov eax, dword [ecx + 0x10c]
add eax, esi
jo 0x441c8c
mov dword [ecx + 0x10c], eax
mov ecx, edi
call fcn.0041230e
mov ecx, edi
call fcn.00437a9f
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 0xf8], 2
and dword [esp + 0x108], 0
mov edx, esi
call fcn.0041789e
movzx ebx, byte [esp + 0xc6]
lea ecx, [esp + 0xa8]
mov eax, ebx
and al, 1
mov byte [esp + 5], al
call fcn.00439b09
mov ecx, ebx
and cl, 0xfe
cmp eax, esi
movzx eax, cl
cmovbe eax, ebx
lea ebx, [esp + 0xf0]
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.0041230e
mov ecx, ebx
call fcn.00437a9f
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0xc0]
mov bl, byte [esp + 0xc4]
mov bh, byte [esp + 0xc5]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], eax
lea eax, [esp + 0xac]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x4c]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x98], xmm1
mov dword [esp + 0xa0], eax
jmp 0x441fc8
mov ebx, dword [eax + 0x24]
lea edi, [esp + 0x60]
mov ecx, edi
call fcn.0041109a
mov esi, dword [eax + 0xcc]
mov ecx, edi
call fcn.00411082
lea ecx, [eax + 0x20]
mov edx, esi
push 1
mov dword [esp + 0x34], ebx
push ebx
call fcn.00418c34
pop eax
pop ecx
mov ecx, edi
call fcn.0041109a
mov edi, dword [eax + 0xcc]
mov esi, dword [esp + 0x40]
mov bl, byte [esp + 7]
mov ecx, dword [esp + 0x44]
mov bh, byte [esp + 6]
mov al, 8
jmp 0x441fc0
mov ecx, dword [esp + 0x1f4]
dec eax
mov dl, byte [esp + 0x22d]
mov dh, byte [esp + 0x22e]
mov esi, dword [esp + 0x210]
mov edi, dword [esp + 0x214]
lea ebx, [esp + 0xf0]
mov eax, dword [eax*4 + 0x442914]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1f8]
add eax, dword [esp + 0x2b8]
mov dword [esp + 0x30], ecx
mov cl, byte [esp + 0x220]
mov byte [esp + 0x22], cl
mov cl, byte [esp + 0x22c]
mov byte [esp + 0x23], cl
mov ecx, dword [esp + 0x218]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x21c]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x228]
mov dword [esp + 0xd0], ecx
mov cl, 7
mov dword [esp + 0xc], ecx
jmp eax
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x2d0]
call fcn.004178e0
mov eax, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xa8]
movsd xmm1, qword [esp + 0xb0]
mov ecx, dword [esp + 0x1eb]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x1e8]
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0x90], xmm0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x7f], ecx
push 0x6d
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x350]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x2ac]
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xe8], eax
mov al, 3
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x50]
movzx eax, byte [esp + 0x1f0]
mov byte [esp + 7], bl
mov dword [esp + 0x44], ecx
mov byte [esp + 6], bh
mov dword [esp + 0x50], edx
cmp eax, 9
je 0x44200b
test eax, eax
je 0x44200b
cmp eax, 3
lea ebx, [esp + 0xf0]
je 0x442001
lea ecx, [esp + 0x1f0]
call fcn.004367b0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], esi
jmp 0x44201a
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], esi
lea ebx, [esp + 0xf0]
lea esi, [esp + 0x60]
mov ecx, esi
call fcn.0041109a
cmp dword [eax + 0x64], 0
jne 0x442038
mov ecx, esi
call fcn.0041109a
cmp byte [eax + 0x20], 5
jne 0x442043
mov ecx, dword [esp + 0x38]
mov edx, esi
call fcn.0041228a
mov ecx, dword [esp + 0x68]
xor eax, eax
cmp dword [esp + 0x24], 0x3b9aca00
movsd xmm0, qword [esp + 0x60]
mov edx, ebx
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x18]
setne al
movsd qword [esp + 0xf0], xmm0
push eax
call fcn.004112ed
pop eax
movzx eax, word [esp + 0x5c]
movsd xmm0, qword [esp + 0x90]
movsd xmm1, qword [esp + 0x98]
mov ecx, dword [esp + 0x7f]
mov word [esp + 0x58], ax
mov al, byte [esp + 0x5e]
movsd qword [esp + 0x310], xmm0
movsd qword [esp + 0x318], xmm1
mov byte [esp + 0x5a], al
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x320], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e3], ecx
push 0x6d
lea eax, [esp + 0x34c]
push eax
lea eax, [esp + 0x427]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0xec]
mov eax, dword [esp + 0xe8]
lea esi, [esp + 0x3d8]
mov dword [esp + 0x2cc], ecx
mov ecx, esi
mov dword [esp + 0x2c8], eax
call fcn.0041230e
mov ecx, esi
call fcn.00437a9f
lea esi, [esp + 0x3b8]
mov ecx, esi
call fcn.0041230e
mov ecx, esi
call fcn.00437a9f
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
test cl, cl
je 0x4421ae
mov edx, dword [esp + 0x78]
movzx eax, cl
cmp eax, 9
jne 0x4421d8
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x84], eax
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x28]
mov ecx, ebx
push dword [ebp + 8]
call fcn.0044942a
pop eax
cmp byte [esp + 0xf0], 5
je 0x4424a5
mov ebx, dword [esp + 0xf0]
cmp bl, 4
jne 0x442493
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
push edi
push dword [esp + 0xc]
call fcn.00449d71
pop ecx
pop edx
test al, al
jne 0x44235e
jmp 0x4424ac
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
mov dword [ecx + 0xfc], 1
mov dword [ecx + 0x100], eax
mov dword [ecx + 0x104], edx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x78]
mov al, byte [esp + 0x5a]
mov byte [esp + 0xf0], cl
lea ecx, [esp + 0xf4]
movsd xmm0, qword [esp + 0x310]
movsd xmm1, qword [esp + 0x318]
mov byte [ecx - 1], al
movzx eax, word [esp + 0x58]
mov word [ecx - 3], ax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x320]
movsd qword [ecx + 0x10], xmm1
movsd qword [ecx + 8], xmm0
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x114], edx
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x11c], eax
mov al, byte [esp + 5]
mov byte [esp + 0x120], al
mov eax, dword [esp + 0x1e3]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x1e0]
mov dword [ecx + 0x2d], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x128], eax
mov al, byte [esp + 7]
mov byte [esp + 0x12c], al
mov al, byte [esp + 6]
mov byte [esp + 0x12d], al
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x12e], al
push 0x6d
lea eax, [esp + 0x423]
push eax
lea eax, [esp + 0x137]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x2cc]
mov esi, dword [esp + 0x28]
mov edx, ebx
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0x1a4], ecx
mov ecx, esi
mov dword [esp + 0x1a0], eax
call fcn.00449f10
movzx ecx, al
mov edx, 0x4b9271
push 0x4b9280
push 0xd
call fcn.0044a940
pop eax
pop ecx
mov ecx, ebx
mov edx, esi
push dword [ebp + 8]
call fcn.00449d1b
pop eax
cmp byte [esp + 0xf0], 5
je 0x4424b3
mov ebx, dword [esp + 0xf0]
cmp bl, 4
jne 0x4424bf
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
push edi
push dword [esp + 0xc]
call fcn.00449d71
pop ecx
pop edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x10]
jmp 0x441627
mov ecx, dword [esp + 0xf4]
mov edx, ebx
shrd edx, ecx, 8
shr ecx, 8
jmp 0x4424e2
mov bl, 5
jmp 0x44159b
mov bl, 4
jmp 0x44159b
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov bl, 5
jmp 0x4424cf
mov ecx, dword [esp + 0xf4]
mov edx, ebx
shrd edx, ecx, 8
shr ecx, 8
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x84], esi
cmp bl, 5
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], edx
je 0x44254a
movzx eax, bl
cmp eax, 4
jne 0x44253c
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax]
push dword [eax + 4]
call dword [ecx]
add esp, 4
mov ecx, dword [esp + 0x10]
mov esi, eax
mov edi, edx
mov eax, dword [ecx + 0xb0]
test eax, eax
je 0x442528
push dword [ecx + 0xb4]
call dword [eax + 0xc]
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0xb0], esi
mov dword [ecx + 0xb4], edi
mov bl, 4
mov edi, dword [esp + 0x14]
jmp 0x44254a
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], ecx
mov al, byte [esp + 4]
mov ecx, dword [esp + 0x34]
movzx edx, al
call fcn.0042b7d4
movzx edx, byte [esp + 0x4b]
mov ecx, dword [esp + 0x10]
call fcn.0042b7d4
cmp bl, 4
jne 0x442859
mov eax, dword [esp + 0xe0]
lea esi, [esp + 0xf0]
cmp dword [eax], 0
jne 0x4425ae
cmp byte [edi + 0x23c], 0
jne 0x442861
cmp dword [edi + 0x218], 0
je 0x442861
cmp dword [edi + 0x21c], 0x7fffffff
je 0x442861
mov edx, dword [edi + 0x280]
mov ecx, esi
add edx, 8
call fcn.004106a4
mov ecx, esi
mov edx, 0x4b96f8
call fcn.004376a9
mov esi, dword [eax + 0x174]
mov edi, dword [eax + 0x17c]
movzx edx, dl
mov ecx, eax
call fcn.0042b7d4
or edi, esi
mov edi, dword [esp + 0x14]
jne 0x442861
mov edx, dword [edi + 0x280]
mov ecx, dword [esp + 0xe4]
add edx, 8
call fcn.004493f3
jmp 0x440ed2
mov ecx, dword [esp + 0xe0]
mov eax, edi
mov edi, dword [edi + 0x27c]
and dword [esp + 0x1f8], 0
and dword [esp + 0x1fc], 0
and dword [esp + 0x200], 0
mov dword [esp + 0x1f0], 0x4ba1c4
mov dword [esp + 0x1f4], 0x4e7238
mov bl, byte [eax + 0x279]
movsd xmm2, qword [ecx]
movsd xmm0, qword [ecx + 0x10]
movsd xmm1, qword [ecx + 8]
and dword [eax + 0x288], 0
movsd qword [esp + 0xf0], xmm2
movsd qword [esp + 0x100], xmm0
movsd qword [esp + 0xf8], xmm1
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x4426c3
lea esi, [esp + 0xf0]
lea ecx, [esp + 0x348]
mov edx, esi
call fcn.004090ea
mov esi, dword [esi + 0x14]
lea ecx, [esp + 0x1f0]
call fcn.0041c807
jmp 0x4426f5
lea ecx, [esp + 0xf0]
push dword [esp + 0x1f4]
call fcn.004493d8
pop eax
jmp 0x442869
mov esi, dword [esp + 0x200]
movsd xmm0, qword [esp + 0x1f0]
movsd xmm1, qword [esp + 0x1f8]
mov dword [esp + 0x358], esi
movsd qword [esp + 0x350], xmm1
movsd qword [esp + 0x348], xmm0
movsd xmm0, qword [esp + 0x348]
movsd xmm1, qword [esp + 0x350]
lea ecx, [esp + 0xf0]
movsd qword [esp + 0x1f8], xmm1
movsd qword [esp + 0x1f0], xmm0
call fcn.00422bc3
mov eax, esi
or eax, edi
je 0x442769
test esi, esi
je 0x442793
movsd xmm0, qword [esp + 0x1f0]
movsd xmm1, qword [esp + 0x1f8]
movsd qword [esp + 0x100], xmm1
movsd qword [esp + 0xf8], xmm0
mov dword [esp + 0xf4], esi
mov word [esp + 0xf0], 0x201
jmp 0x442869
mov byte [esp + 0xf0], 3
jmp 0x4427cf
mov eax, dword [esp + 8]
test eax, eax
je 0x4427e0
mov edx, eax
lea ecx, [esp + 0x1f0]
push esi
call fcn.00407d50
mov edx, dword [esp + 0x28]
add esp, 4
jmp 0x4427e8
mov byte [esp + 0xf0], 1
mov byte [esp + 0xf1], bl
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf8], 0x4ba1c4
mov dword [esp + 0xfc], 0x4e7238
and dword [esp + 0x100], 0
and dword [esp + 0x104], 0
lea ecx, [esp + 0x1f0]
call fcn.0041c807
jmp 0x442869
and dword [esp + 0x1f0], 0
mov al, byte [esp + 0x18]
movsd xmm0, qword [esp + 0x1f0]
lea ecx, [esp + 0xf4]
mov byte [esp + 0xf1], al
mov eax, dword [esp + 0x1f8]
movsd qword [ecx], xmm0
mov dword [ecx + 8], eax
mov al, 2
mov ecx, ebx
mov byte [esp + 0xf0], al
lea eax, [esp + 0xf0]
push eax
call fcn.0044aa63
pop eax
mov al, byte [esp + 0x18]
mov edx, dword [esp + 8]
mov cl, 2
mov byte [esp + 0xf1], al
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf8], edi
mov dword [esp + 0xfc], esi
mov byte [esp + 0xf0], cl
jmp 0x442869
movzx eax, bl
cmp eax, 5
jne 0x4428d8
mov byte [esp + 0xf0], 4
lea esi, [esp + 0x3f8]
mov ecx, esi
call fcn.0041230e
mov ecx, esi
call fcn.00437a9f
lea esi, [esp + 0x328]
mov ecx, esi
call fcn.0041230e
mov ecx, esi
call fcn.00437a9f
movzx eax, byte [esp + 0xf0]
cmp eax, 3
je 0x4428b1
cmp eax, 4
jne 0x4428bd
mov eax, dword [esp + 0x88]
mov byte [eax], 6
jmp 0x4428d0
mov eax, dword [esp + 0x88]
mov byte [eax], 5
jmp 0x4428d0
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0xf0]
call fcn.00417413
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0xd8]
mov edx, dword [esp + 0xd4]
lea ecx, [esp + 0xf0]
shld esi, edx, 8
shl edx, 8
or edx, eax
push esi
jmp 0x4426b8
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__value
push 0x4b92c4
call fcn.00493be0
pop eax
ud2