Function at 0x403df0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x180
mov esi, esp
mov dword [esi + 0x168], ebp
mov dword [esi + 0x16c], esp
mov dword [esi + 0x178], 0xffffffff
mov dword [esi + 0x174], 0x4d3e30
mov ebx, dword [ebp + 8]
mov edi, ecx
mov eax, dword fs:[0]
shr edi, 1
mov dword [esi + 0x170], eax
lea eax, [esi + 0x170]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], ecx
mov dword [esi + 0x148], eax
cmp edi, eax
call 0x403e5c
pop eax
mov dword [esi + 0x13c], eax
mov eax, dword [ebp + 0x14]
jae 0x403e9b
mov edi, dword [ebp + 0x10]
test eax, eax
je 0x4056ea
mov edx, dword [ebp + 0x18]
shl eax, 4
lea ecx, [edi + eax]
add eax, 0xfffffff0
mov dword [esi + 0x10c], ecx
mov ecx, dword [edx]
mov dword [esi + 0x108], ecx
mov ecx, dword [edx + 4]
mov dword [esi + 0x130], ecx
lea ecx, [edi + 0x14]
jmp 0x403f0e
test dl, dl
je 0x4055c5
call fcn.00401cc0
test eax, eax
je 0x4059ab
mov eax, dword [eax]
test eax, eax
je 0x40561a
add eax, 0x8c
jmp 0x40561f
mov eax, dword [esi + 4]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [esi + 0x50], edi
mov edi, dword [esi + 0x4c]
push dword [esi + 0x50]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esi + 0x118]
mov ecx, dword [esi + 0x114]
add eax, 0xfffffff0
add ecx, 0x10
cmp edi, dword [esi + 0x10c]
je 0x4056ea
mov dword [esi + 0x118], eax
mov eax, edi
mov dword [esi + 0x114], ecx
add edi, 0x10
mov ecx, dword [eax]
cmp ecx, 0x80000000
je 0x4055d1
mov edx, dword [eax + 4]
mov dword [esi + 0x18], ecx
lea ecx, [esi + 0x90]
mov dword [esi + 0x100], edx
push dword [eax + 8]
call fcn.004c6b50
add esp, 4
mov eax, dword [esi + 0x90]
mov ebx, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
mov dword [esi + 0x4c], edi
cmp eax, 0x80000000
je 0x403f9e
mov dword [esi + 0x90], eax
mov dword [esi + 0x98], edx
lea ecx, [esi + 0x20]
lea edx, [esi + 0x90]
mov dword [esi + 0x94], ebx
call fcn.004cd130
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
cmp edi, 0x80000000
jne 0x4040a0
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x4c]
mov ecx, ebx
lea eax, [esi + 0x90]
shr ecx, 8
cmp bl, 4
mov dword [esi + 0x110], ecx
jne 0x4040fe
xorps xmm0, xmm0
mov dword [esi + 0x54], edx
mov dword [esi + 0xc0], 0
movaps xmmword [esi + 0xb0], xmm0
movaps xmmword [esi + 0xa0], xmm0
movaps xmmword [esi + 0x90], xmm0
push eax
mov dword [esi + 4], edx
push edx
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x404290
test byte [esi + 0x91], 4
je 0x404020
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
push 8
lea eax, [esi + 0x20]
push eax
push 9
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandleEx]
test eax, eax
je 0x404290
mov edi, dword [esi + 0xb4]
mov eax, dword [esi + 4]
test edi, edi
je 0x4042b9
js 0x40592c
movzx eax, byte [0x537170]
mov eax, dword [0x5371d8]
test eax, eax
jne 0x40405a
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
test eax, eax
je 0x40590b
mov dword [0x5371d8], eax
push edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
test eax, eax
je 0x40590b
lea ebx, [edi + 0x400]
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], 0
mov eax, ebx
and eax, 0x1fff
jne 0x4042da
mov dword [esi + 0x64], 0
jmp 0x404300
push 0
push 0
push 3
push 0
push 7
push 0x80000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x40469a
mov edx, eax
mov al, 4
mov dword [esi + 4], eax
test edi, edi
je 0x4040dd
push ebx
push 0
push dword [0x5371d8]
mov edi, edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edx, edi
mov edi, dword [esi + 0x4c]
mov ecx, dword [esi + 0x110]
mov ebx, dword [esi + 4]
lea eax, [esi + 0x90]
cmp bl, 4
mov dword [esi + 0x110], ecx
je 0x403fb8
movzx eax, bl
shl ecx, 8
mov ebx, edx
or ecx, eax
mov dword [esi + 0x50], ecx
mov dword [esi + 0xfc], 0x80000000
mov eax, dword [esi + 0x18]
test eax, eax
je 0x404130
push dword [esi + 0x100]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esi + 0xfc], 0x80000000
jne 0x404180
cmp byte [esi + 0x50], 3
jne 0x403ef0
mov eax, dword [ebx]
mov edi, ebx
mov ebx, dword [ebx + 4]
mov dword [esi + 4], eax
push eax
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x403ed9
cmp dword [ebx + 8], 9
jae 0x403ec4
mov eax, dword [esi + 4]
jmp 0x403eca
mov eax, dword [esi + 0x108]
mov dword [esi + 8], ebx
mov edi, dword [eax + 4]
call fcn.004996b0
test eax, eax
je 0x405825
mov eax, dword [eax]
mov ebx, dword [edi + 0x2f8]
cmp eax, ebx
jne 0x4046b6
mov dword [edi + 0x2f8], 1
mov dword [esi + 0x28], edi
mov dword [esi + 0x20], 1
mov dword [esi + 0x24], eax
mov byte [esi + 0x2c], 0
movsd xmm0, qword [esi + 0x20]
movsd xmm1, qword [esi + 0x28]
movzx eax, byte [esi + 0x22]
lea ecx, [esi + 0xa8]
mov edi, dword [esi + 8]
movsd qword [esi + 0x98], xmm1
movsd qword [esi + 0x90], xmm0
mov byte [ecx + 0x1b], al
movzx eax, word [esi + 0x20]
mov word [ecx + 0x19], ax
mov eax, dword [esi + 0x130]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x108]
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa8], 0
mov dword [esi + 0x138], ecx
mov ecx, dword [esi + 0x50]
mov dword [esi + 4], edx
mov dword [esi + 0xb0], ecx
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], 0
mov dword [esi + 0xbc], edi
mov byte [esi + 0xc0], 0
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], ecx
lea ecx, [edx + 8]
mov dword [esi + 0xcc], edi
mov dword [esi + 0x6c], ecx
lea ecx, [edx + 0x80]
mov dword [esi + 0xd4], ecx
lea ecx, [edx + 0xb0]
mov dword [esi + 0x134], ecx
mov ecx, eax
jmp 0x404726
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov al, 1
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 1
mov dword [esi + 0x28], 0
xor edi, edi
mov ebx, 0x2000
mov dword [esi + 0x64], eax
jmp 0x404300
xor edi, edi
mov eax, 0x400
mov ebx, 0x400
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 1
mov dword [esi + 0x28], 0
mov ecx, 0x2000
mov dword [esi + 0x64], 0
sub ecx, eax
add ebx, ecx
setb al
test al, 1
je 0x404300
mov ebx, 0x2000
nop word cs:[eax + eax]
test edi, edi
mov ecx, dword [esi + 0x64]
not cl
mov edx, edi
mov dword [esi + 8], 0
mov dword [esi + 0x50], edi
setne al
test cl, al
mov eax, 0
jne 0x40437d
cmp edi, 0x20
mov edx, edi
jae 0x40437d
mov eax, dword [esi + 4]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x178], 1
lea ecx, [esi + 0x90]
lea edx, [esi + 0x54]
mov dword [esi + 0x68], eax
lea eax, [esi + 0x20]
push eax
call fcn.004ccb10
add esp, 4
movzx ebx, byte [esi + 0x90]
cmp bl, 4
jne 0x40461b
cmp dword [esi + 0x94], 0
mov edi, dword [esi + 0x4c]
mov ecx, dword [esi + 4]
je 0x4045f2
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x50]
mov ebx, dword [esi + 0x10]
lea ecx, [esi + 0x90]
cmp eax, edx
mov dword [esi + 0x10], ebx
jne 0x4043d9
cmp edx, edi
jne 0x4043d9
mov eax, dword [esi + 4]
mov dword [esi + 0x178], 1
lea edx, [esi + 0x54]
mov dword [esi + 0x68], eax
lea eax, [esi + 0x20]
push eax
call fcn.004ccb10
add esp, 4
movzx ebx, byte [esi + 0x90]
mov edi, dword [esi + 0x4c]
cmp bl, 4
jne 0x40461b
cmp dword [esi + 0x94], 0
mov ecx, dword [esi + 4]
je 0x4045f2
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x28]
mov ebx, dword [esi + 0x10]
cmp eax, edx
mov dword [esi + 0x178], 1
jne 0x404410
mov eax, dword [esi + 4]
lea ecx, [esi + 0x20]
mov dword [esi + 0x68], eax
push 0x20
call fcn.004d8ef0
add esp, 4
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x28]
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x10]
jmp 0x404415
mov edi, dword [esi + 4]
mov ecx, eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x48], edx
sub edx, ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x68], edi
add eax, ecx
cmp edx, ebx
lea ecx, [esi + 0x70]
mov dword [esi + 0x90], eax
cmovae edx, ebx
mov eax, dword [esi + 8]
mov dword [esi + 0x94], edx
mov dword [esi + 0xd4], edx
mov edx, dword [esi + 0x54]
mov dword [esi + 0x98], 0
mov dword [esi + 0x9c], eax
lea eax, [esi + 0x90]
mov dword [esi + 8], edx
push eax
call fcn.004ccd20
add esp, 4
jmp 0x4044ba
movzx eax, byte [esi + 0x70]
cmp al, 4
je 0x404540
movzx eax, al
mov eax, dword [eax*4 + 0x405af4]
add eax, dword [esi + 0x13c]
jmp eax
mov edx, dword [esi + 0x9c]
mov ecx, dword [esi + 0x98]
mov ebx, dword [esi + 0x10]
mov eax, edx
sub eax, ecx
mov dword [esi + 8], eax
jb 0x40584a
mov eax, dword [esi + 0x94]
mov edi, dword [esi + 0x4c]
cmp edx, eax
ja 0x405862
test ecx, ecx
je 0x4046ca
mov eax, dword [esi + 0x1c]
add eax, ecx
cmp byte [esi + 0x64], 0
mov dword [esi + 0x28], eax
je 0x4045c0
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0xd4]
mov edi, 0xffffffff
cmp edx, eax
mov edx, eax
cmovne ebx, edi
mov edi, dword [esi + 0x50]
cmp ecx, edx
jne 0x4045b2
cmp edx, ebx
jb 0x4045b2
test ebx, ebx
lea eax, [ebx + ebx]
mov ecx, 0xffffffff
cmovs eax, ecx
mov ebx, eax
mov eax, dword [esi + 0x1c]
jmp 0x4045c3
mov edi, dword [esi + 0x50]
mov edx, dword [esi + 0x48]
lea ecx, [esi + 0x90]
cmp eax, edx
mov dword [esi + 0x10], ebx
je 0x40438a
jmp 0x4043d9
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x28]
mov dword [esi + 0xfc], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x50], eax
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x40411c
jmp 0x404130
mov ecx, dword [esi + 0x94]
movzx eax, byte [esi + 0x93]
movzx edi, word [esi + 0x91]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 4]
shl eax, 0x10
or edi, eax
cmp dword [esi + 0x20], 0
je 0x404654
push dword [esi + 0x24]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [esi + 4]
shl edi, 8
movzx eax, bl
or eax, edi
mov dword [esi + 0x50], eax
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esi + 0x4c]
mov ebx, dword [esi + 8]
mov dword [esi + 0xfc], 0x80000000
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x40411c
jmp 0x404130
mov dword [esi + 4], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
test edi, edi
jne 0x4040ca
jmp 0x4040dd
lea ecx, [esi + 0x20]
mov edx, edi
push ebx
push eax
call fcn.004d58d0
add esp, 8
jmp 0x4041c4
mov ecx, dword [esi + 4]
jmp 0x4045f2
test ebx, ebx
je 0x4059c8
mov dword [ecx + 0x44], ebx
mov eax, edi
lock add dword [ecx + 0x40], 2
mov dword [edi + 0x1f0], ebx
mov dword [esi + 0x1c], 0x1e
mov edi, dword [esi + 0x1c]
mov edx, eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x48]
shl edi, 4
mov dword [edx + edi], eax
mov dword [edx + edi + 4], ecx
mov dword [edx + edi + 8], eax
lock or dword [edx + edi + 0xc], 1
mov ecx, dword [esi + 0xd4]
call fcn.00402c10
nop dword [eax + eax]
mov ecx, dword [esi + 0xc4]
mov eax, dword [esi + 0x90]
test eax, eax
je 0x404740
mov edx, dword [esi + 0x98]
jmp 0x404746
mov edx, dword [esi + 0x94]
mov dword [esi + 8], edx
mov edx, dword [ecx]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xb8]
mov ebx, dword [edx + 0x10]
test ecx, ecx
je 0x404768
mov edi, dword [ebx + 0x58]
test byte [edi + 0x1c], 1
jne 0x4053e7
mov edi, dword [esi + 0xbc]
cmp edi, dword [esi + 0xb4]
jae 0x404790
mov ebx, dword [ebx + 0x58]
test byte [ebx + 0x20], 2
jne 0x4053e7
cmp dword [ebx], 0
jne 0x404798
jmp 0x4047e0
mov ebx, dword [ebx + 0x58]
cmp dword [ebx], 0
je 0x4047e0
sub edi, ecx
mov ecx, 0
cmovb edi, ecx
cmp edi, dword [ebx + 4]
jb 0x4053e7
mov ecx, dword [esi + 0xa8]
dec ecx
cmp ecx, 2
jb 0x4047bd
test byte [ebx + 0x1c], 1
je 0x4047e0
test byte [ebx + 0x20], 2
je 0x4047e0
cmp dword [ebx + 8], 0
je 0x4047e0
cmp edi, dword [ebx + 0xc]
ja 0x4053e7
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov edx, dword [eax + 8]
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
lea edx, [esi + 0xa8]
push edx
push dword [esi + 8]
push ecx
lea ecx, [esi + 0x20]
push ecx
call dword [eax + 0x34]
add esp, 0x10
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
cmp ecx, 1
jne 0x4053d9
mov edi, dword [esi + 0x28]
cmp edi, eax
ja 0x404831
cmp dword [esi + 0xa0], 0
je 0x404831
cmp edi, dword [esi + 0xa4]
je 0x405155
mov edx, dword [esi + 0xbc]
mov ecx, dword [esi + 0xb4]
mov dword [esi + 0x54], edi
lea ebx, [edx + 1]
mov dword [esi + 0x58], edx
cmp ebx, edi
jb 0x40579b
cmp ecx, edx
jb 0x40579b
mov ebx, edi
mov dword [esi + 0xb8], edi
mov dword [esi + 0xa0], 1
mov dword [esi + 0xa4], edi
sub ebx, eax
jb 0x4057ed
mov edx, dword [esi + 0xcc]
cmp edi, edx
ja 0x4057fb
add eax, dword [esi + 0xc8]
lea ecx, [esi + 0x14c]
mov edx, eax
push ebx
call fcn.00420c70
add esp, 4
cmp dword [esi + 0x14c], 0
jne 0x404720
mov edx, dword [esi + 0x154]
mov edi, dword [esi + 0x150]
test edx, edx
mov dword [esi + 0x18], edx
je 0x4048fd
js 0x405820
movzx eax, byte [0x537170]
mov eax, dword [0x5371d8]
test eax, eax
jne 0x4048e7
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, dword [esi + 0x18]
test eax, eax
je 0x405816
mov dword [0x5371d8], eax
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, dword [esi + 0x18]
test eax, eax
jne 0x404902
jmp 0x405816
mov eax, 1
push edx
push edi
mov dword [esi + 0x48], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x138]
test eax, eax
je 0x404b2d
cmp eax, 1
jne 0x404b78
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x40]
mov edi, dword [eax + 0x44]
test cl, 1
jne 0x405842
xor edx, edx
xor ebx, ebx
mov eax, ecx
shr ecx, 1
mov dword [esi + 0x10], ebx
and ecx, 0x1f
cmp ecx, 0x1f
jne 0x404a40
mov edi, edx
lea ebx, [edx + edx + 1]
imul edi, edx
nop dword [eax]
cmp edx, 7
mov dword [esi + 8], edx
jae 0x404990
mov ecx, dword [esi + 4]
test edx, edx
je 0x404999
mov eax, edi
nop word cs:[eax + eax]
nop dword [eax + eax]
pause
dec eax
jne 0x404980
jmp 0x404999
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0x40]
mov edx, dword [ecx + 0x44]
test al, 1
mov dword [esi + 0xc], edx
jne 0x404d45
mov edx, dword [esi + 8]
mov ecx, eax
add edi, ebx
add ebx, 2
shr ecx, 1
and ecx, 0x1f
inc edx
cmp ecx, 0x1f
je 0x404960
cmp ecx, 0x1e
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], ecx
jne 0x404a52
mov ebx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
test ebx, ebx
jne 0x404a30
movzx eax, byte [0x537170]
mov eax, dword [0x5371d8]
mov edi, edx
test eax, eax
jne 0x404a00
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
test eax, eax
je 0x405807
mov dword [0x5371d8], eax
push 0x1f4
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
test eax, eax
je 0x405807
mov ebx, eax
push 0x1f4
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov edx, edi
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
test edi, edi
mov dword [esi + 8], edx
jne 0x404abf
jmp 0x404a62
mov dword [esi + 0xc], edi
cmp ecx, 0x1e
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], ecx
je 0x4049ce
mov ebx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
test edi, edi
mov dword [esi + 8], edx
jne 0x404abf
movzx eax, byte [0x537170]
mov eax, dword [0x5371d8]
test eax, eax
jne 0x404a85
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
test eax, eax
je 0x405807
mov dword [0x5371d8], eax
push 0x1f4
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
test eax, eax
je 0x405807
push 0x1f4
push 0
push eax
mov edi, eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [esi + 4]
xor eax, eax
lock cmpxchg dword [ecx + 0x44], edi
jne 0x404b0c
mov dword [ecx + 4], edi
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 4]
lea ecx, [eax + 2]
lock cmpxchg dword [edx + 0x40], ecx
mov ecx, dword [esi + 4]
je 0x4051d9
mov edx, dword [esi + 8]
mov eax, 6
cmp edx, 6
cmovb eax, edx
test eax, eax
je 0x404af5
imul eax, eax
nop dword [eax + eax]
pause
dec eax
jne 0x404af0
inc edx
mov eax, ecx
mov ecx, dword [ecx + 0x40]
mov edi, dword [eax + 0x44]
test cl, 1
je 0x40493d
jmp 0x404d48
test ebx, ebx
mov dword [esi + 0xc], edi
je 0x404b25
push ebx
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [esi + 4]
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 8]
jmp 0x404af6
mov ecx, dword [esi + 4]
xorps xmm0, xmm0
mov dword [esi + 0x78], 0x3b9aca00
mov dword [esi + 0x30], 0
movaps xmmword [esi + 0x20], xmm0
mov edi, dword [ecx + 0x40]
mov ebx, dword [ecx + 0x88]
test ebx, edi
je 0x404d82
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0xdc], eax
mov dword [esi + 0xe0], ecx
mov dword [esi + 0xe4], eax
mov eax, 1
jmp 0x40511a
xorps xmm0, xmm0
mov dword [esi + 0x160], 0x3b9aca00
mov dword [esi + 0x80], 0
movaps xmmword [esi + 0x70], xmm0
push dword [esi + 0x6c]
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x5371c4]
test eax, 0x7fffffff
jne 0x4051f2
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 4]
movzx eax, byte [ecx + 0xc]
test al, al
jne 0x405892
mov edi, dword [ecx + 0x30]
test edi, edi
je 0x404cf2
call fcn.004d0630
test eax, eax
mov dword [esi + 8], eax
je 0x405825
mov eax, dword [esi + 4]
shl edi, 2
lea ebx, [edi + edi*2]
xor edi, edi
mov edx, dword [eax + 0x2c]
jmp 0x404bfd
add edx, 0xc
inc edi
add ebx, 0xfffffff4
je 0x404cf2
mov ecx, dword [edx]
mov eax, dword [esi + 8]
cmp dword [ecx + 0x14], eax
je 0x404bf0
mov eax, dword [edx + 4]
mov dword [esi + 0x14], edi
mov dword [esi + 0xc], eax
xor eax, eax
mov edi, dword [esi + 0xc]
lock cmpxchg dword [ecx + 0xc], edi
mov edi, dword [esi + 0x14]
jne 0x404bf0
mov eax, dword [edx + 8]
test eax, eax
je 0x404c29
mov dword [ecx + 0x10], eax
mov ebx, dword [ecx + 8]
mov al, 1
xchg byte [ebx + 0x18], al
cmp al, 0xff
jne 0x404c48
mov eax, dword [0x5371f4]
add ebx, 0x18
test eax, eax
je 0x40523e
push ebx
call eax
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x30]
cmp ebx, edi
jbe 0x405943
mov ecx, dword [eax + 0x2c]
lea edx, [edi + edi*2]
not edi
add edi, ebx
shl edi, 2
lea eax, [ecx + edx*4]
mov dword [esi + 8], eax
mov eax, dword [ecx + edx*4]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + edx*4 + 4]
mov dword [esi + 0x64], eax
mov eax, dword [ecx + edx*4 + 8]
lea ecx, [ecx + edx*4 + 0xc]
lea edx, [edi + edi*2]
mov edi, dword [esi + 0xc]
mov dword [esi + 0x1c], eax
push edx
push ecx
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esi + 4]
dec ebx
test edi, edi
mov dword [eax + 0x30], ebx
je 0x404cf2
mov ebx, dword [esi + 0x1c]
cmp byte [esi + 0x10], 0
mov eax, dword [esi + 0x64]
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], ebx
mov dword [esi + 0x80], ebx
jne 0x404cca
mov eax, dword [0x5371c4]
test eax, 0x7fffffff
jne 0x4053a1
push dword [esi + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebx, ebx
je 0x405210
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x48]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], eax
mov byte [ebx + 0xc], 1
jmp 0x40521e
mov eax, dword [esi + 4]
cmp byte [eax + 0x40], 0
je 0x40500c
mov eax, dword [esi + 0x18]
cmp byte [esi + 0x10], 0
mov ecx, dword [esi + 0x48]
mov dword [esi + 0xdc], eax
mov dword [esi + 0xe0], ecx
mov dword [esi + 0xe4], eax
mov dword [esi + 0xd8], 1
jne 0x404d37
mov eax, dword [0x5371c4]
test eax, 0x7fffffff
jne 0x405388
push dword [esi + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x405114
mov ebx, dword [esi + 0x10]
xor eax, eax
mov dword [esi + 0x1c], 0
test ebx, ebx
je 0x404d68
push ebx
push 0
push dword [0x5371d8]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
test eax, eax
jne 0x4046f1
cmp dword [esi + 0x18], 0x80000000
je 0x404720
jmp 0x405842
mov dword [esi + 8], edi
mov edx, 1
xor edi, edi
xor eax, eax
jmp 0x404dc9
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
nop word cs:[eax + eax]
mov eax, dword [esi + 4]
inc ebx
mov eax, dword [eax + 0x40]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x1c]
mov dword [esi + 8], eax
mov eax, ebx
mov ebx, dword [ecx + 0x88]
add edi, edx
add edx, 2
mov ecx, dword [esi + 4]
test dword [esi + 8], ebx
jne 0x405141
mov dword [esi + 0x1c], edx
cmp eax, 6
mov edx, 6
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], eax
mov edi, dword [esi + 8]
cmovb edx, eax
xor eax, eax
dec ebx
sub eax, dword [ecx + 0x84]
mov ecx, dword [ecx + 0xd4]
imul edx, edx
and ebx, edi
mov dword [esi + 0xc], eax
mov eax, ebx
mov dword [esi + 0x64], ecx
shl eax, 4
mov dword [esi + 0x100], eax
mov ecx, dword [ecx + eax]
cmp edi, ecx
jne 0x404e30
mov ecx, dword [esi + 0xd4]
inc ebx
cmp ebx, dword [ecx]
jae 0x404e80
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
mov dword [esi + 0xc], eax
jmp 0x404e94
mov ebx, dword [esi + 4]
lea eax, [edi + 1]
add ecx, dword [ebx + 0x84]
cmp ecx, eax
jne 0x404ee0
mfence
mov eax, dword [ebx]
add eax, dword [ebx + 0x84]
mov ebx, dword [esi + 0x10]
cmp eax, edi
mov edi, dword [esi + 0x14]
je 0x404f0a
cmp ebx, 6
mov eax, 6
cmovb eax, ebx
test eax, eax
je 0x404da0
pause
dec edx
jne 0x404e70
jmp 0x404da0
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 4]
and ebx, ecx
add ebx, dword [eax + 0x84]
mov dword [esi + 0xc], ebx
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 4]
mov eax, ecx
mov dword [esi + 8], ecx
lock cmpxchg dword [ebx + 0x40], edi
je 0x405194
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov eax, 6
cmp ebx, 6
cmovb eax, ebx
test eax, eax
je 0x404da0
nop word cs:[eax + eax]
nop dword [eax]
pause
dec edx
jne 0x404ed0
jmp 0x404da0
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
cmp ebx, 7
jae 0x404d90
test ebx, ebx
je 0x404da0
mov eax, edi
nop dword [eax]
pause
dec eax
jne 0x404f00
jmp 0x404da0
mov eax, dword [esi + 0x78]
cmp eax, 0x3b9aca00
je 0x404f51
mov ecx, dword [esi + 0x74]
mov edi, dword [esi + 0x70]
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
call fcn.004c7130
mov dword [esi + 0x14], edi
cmp eax, edi
mov edi, dword [esi + 0xc]
mov ebx, edx
mov dword [esi + 0x10], ecx
sbb edx, edi
mov edx, dword [esi + 8]
jb 0x404f51
xor eax, dword [esi + 0x14]
xor ebx, edi
mov ecx, edi
or ebx, eax
jne 0x4053ba
cmp dword [esi + 0x10], edx
jae 0x4053ba
call fcn.004d3950
test eax, eax
je 0x404fd2
mov ebx, dword [eax]
mov edi, eax
mov dword [eax], 0
test ebx, ebx
je 0x404fd2
mov dword [esi + 0xe8], ebx
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
lea eax, [esi + 0x20]
lea ecx, [esi + 0x70]
mov edx, dword [esi + 4]
mov dword [esi + 0x54], eax
mov dword [esi + 0x58], edx
mov dword [esi + 0x5c], ecx
lea ecx, [esi + 0x54]
lea edx, [esi + 0xe8]
call fcn.00402660
mov eax, dword [edi]
test eax, eax
mov dword [esi + 0x54], eax
mov dword [edi], ebx
je 0x404fb4
lock dec dword [eax]
jne 0x404fb4
lea ecx, [esi + 0x54]
call fcn.00426fb0
mov edx, dword [esi + 4]
mov ecx, dword [edx + 0x40]
mov ebx, dword [edx + 0x88]
mov dword [esi + 8], ecx
test ebx, ecx
mov ecx, edx
je 0x404d85
jmp 0x405141
call fcn.004dd110
mov edx, dword [esi + 4]
lea ecx, [esi + 0x20]
mov edi, eax
mov dword [esi + 0xe8], eax
mov dword [esi + 0x54], ecx
lea ecx, [esi + 0x70]
mov dword [esi + 0x58], edx
mov dword [esi + 0x5c], ecx
lea ecx, [esi + 0x54]
lea edx, [esi + 0xe8]
call fcn.00402660
lock dec dword [edi]
jne 0x404fb4
lea ecx, [esi + 0xe8]
jmp 0x404faf
call fcn.004d3950
test eax, eax
je 0x4052b4
mov ebx, dword [eax]
mov edi, eax
mov dword [eax], 0
test ebx, ebx
je 0x40531e
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov eax, dword [esi + 0x18]
cmp eax, 0x80000000
je 0x405734
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x20], eax
mov edx, dword [esi + 0x6c]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x2c], edx
lea ecx, [esi + 0x31]
mov byte [esi + 0x30], al
movzx eax, word [esi + 0x11d]
mov word [ecx], ax
movzx eax, byte [esi + 0x11f]
mov byte [ecx + 2], al
lea eax, [esi + 0x70]
lea ecx, [esi + 0x158]
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], edx
lea ecx, [esi + 0x54]
lea edx, [esi + 0x20]
push ebx
call fcn.00401f50
add esp, 4
mov eax, dword [edi]
test eax, eax
mov dword [esi + 0x20], eax
mov dword [edi], ebx
je 0x4050af
lock dec dword [eax]
jne 0x4050af
lea ecx, [esi + 0x20]
call fcn.00426fb0
movsd xmm0, qword [esi + 0x54]
movsd xmm1, qword [esi + 0x5c]
movsd qword [esi + 0xe8], xmm0
movsd qword [esi + 0xf0], xmm1
mov eax, dword [esi + 0xe8]
lea ecx, [esi + 0xec]
movsd xmm0, qword [ecx]
mov ecx, dword [ecx + 8]
cmp eax, 3
movsd qword [esi + 0x120], xmm0
mov dword [esi + 0x128], ecx
je 0x40572f
mov ecx, dword [esi + 0x128]
movsd xmm0, qword [esi + 0x120]
lea edx, [esi + 0xdc]
mov dword [edx + 8], ecx
movsd qword [edx], xmm0
mov dword [esi + 0xd8], eax
mov eax, dword [esi + 0xd8]
cmp eax, 2
je 0x404720
test eax, eax
je 0x40587e
mov eax, dword [esi + 0xdc]
cmp eax, 0x80000000
je 0x404720
jmp 0x4058bb
cmp dword [esi + 0x18], 0x80000000
mov eax, 2
jne 0x404b56
jmp 0x40511a
lea ecx, [esi + 0x20]
lea ebx, [esi + 0x90]
lea edx, [esi + 0xa0]
push ebx
mov ebx, dword [esi + 0xc]
push dword [ebx]
push edi
push eax
call fcn.004d5760
add esp, 0x10
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
cmp ecx, 2
je 0x40575c
cmp ecx, 1
jne 0x4053e1
mov edi, dword [esi + 0x28]
jmp 0x404831
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x64]
mov edi, dword [esi + 0x100]
mov ebx, dword [esi + 0x18]
lea eax, [ecx + edi]
inc edx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
mov dword [esi + 8], edx
mov edx, dword [esi + 0x48]
mov dword [ecx + edi + 4], ebx
mov dword [ecx + edi + 8], edx
mov dword [ecx + edi + 0xc], ebx
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov ecx, dword [esi + 0x134]
call fcn.00402c10
mov eax, 2
jmp 0x40511a
cmp dword [esi + 0x1c], 0x1e
je 0x4046d2
mov eax, edi
test ebx, ebx
jne 0x404d55
jmp 0x404d68
call fcn.004dcfd0
xor al, 1
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 4]
movzx eax, byte [ecx + 0xc]
test al, al
je 0x404bc2
jmp 0x405892
mov eax, dword [esi + 0x18]
cmp eax, 0x80000000
jne 0x405982
mov dword [esi + 0xd8], 2
lock dec dword [edi]
jne 0x405114
lea ecx, [esi + 0x20]
call fcn.00426fb0
jmp 0x405114
mov ecx, dword [0x537084]
cmp ecx, 0xffffffff
jne 0x405294
mov dword [esi + 0x120], 0xffffffff
mov eax, dword [0x53708c]
push 0
push 0
push 0xc0000000
lea ecx, [esi + 0x120]
push ecx
call eax
test eax, eax
jne 0x4059dc
mov ecx, dword [esi + 0x120]
mov eax, 0xffffffff
lock cmpxchg dword [0x537084], ecx
je 0x405294
push ecx
mov dword [esi + 8], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esi + 8]
mov eax, dword [0x537090]
push 0
push 0
push ebx
push ecx
call eax
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x30]
cmp ebx, edi
ja 0x404c56
jmp 0x405943
call fcn.004dd110
mov edi, eax
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x18]
cmp eax, 0x80000000
je 0x405734
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x20], eax
lea ebx, [esi + 0x70]
lea edx, [esi + 0x158]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], eax
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x2c], ecx
mov byte [esi + 0x30], al
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], edx
mov dword [esi + 0x3c], ecx
lea ecx, [esi + 0xd8]
lea edx, [esi + 0x20]
push edi
call fcn.00401f50
add esp, 4
lock dec dword [edi]
jne 0x405114
lea ecx, [esi + 0x54]
call fcn.00426fb0
jmp 0x405114
call fcn.004dd110
mov edi, eax
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x18]
cmp eax, 0x80000000
je 0x405734
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x20], eax
lea ebx, [esi + 0x70]
lea edx, [esi + 0x158]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], eax
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x2c], ecx
mov byte [esi + 0x30], al
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], edx
mov dword [esi + 0x3c], ecx
lea ecx, [esi + 0xe8]
lea edx, [esi + 0x20]
push edi
call fcn.00401f50
add esp, 4
lock dec dword [edi]
jne 0x4050c9
lea ecx, [esi + 0x54]
call fcn.00426fb0
jmp 0x4050c9
call fcn.004dcfd0
test al, al
jne 0x404d37
mov eax, dword [esi + 4]
mov byte [eax + 0xc], 1
jmp 0x404d37
call fcn.004dcfd0
test al, al
jne 0x404cca
mov eax, dword [esi + 4]
mov byte [eax + 0xc], 1
jmp 0x404cca
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0xdc], eax
mov dword [esi + 0xe0], ecx
mov dword [esi + 0xe4], eax
xor eax, eax
jmp 0x40511a
test ecx, ecx
jne 0x40575c
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
mov edi, dword [esi + 0x4c]
test eax, eax
mov dword [esi + 0x90], 1
mov dword [esi + 0x94], 2
je 0x405432
cmp ecx, 2
mov dword [esi + 0x70], ecx
je 0x4058f9
mov eax, dword [esi + 0x98]
mov dword [eax + 0x2f8], ecx
cmp dword [esi + 0xfc], 0
jne 0x403edf
jmp 0x403ef0
cmp byte [esi + 0x9c], 0
je 0x405463
mov ebx, ecx
call fcn.00403540
push ebx
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esi + 0xfc], 0
jne 0x403edf
jmp 0x403ef0
mov edi, dword [esi + 0x98]
mov dword [esi + 0xc], ecx
call fcn.004996b0
test eax, eax
je 0x405825
mov ecx, dword [edi + 0x304]
mov dword [esi + 4], edi
test ecx, ecx
je 0x405748
mov eax, dword [eax]
xor edx, edx
mov edi, 0xa
div ecx
mov ebx, edx
mov dword [esi + 8], edx
jmp 0x4054ad
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ebx, dword [esi + 8]
dec edi
je 0x405527
mov eax, dword [esi + 4]
mov edx, dword [eax + 0x304]
cmp ebx, edx
jae 0x405723
shl ebx, 6
add ebx, dword [eax + 0x300]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4054a7
mov eax, dword [0x5371c4]
test eax, 0x7fffffff
jne 0x405509
movzx eax, byte [ebx + 4]
lea ecx, [ebx + 4]
test al, al
je 0x405555
mov eax, dword [0x5371c4]
test eax, 0x7fffffff
je 0x4054a0
mov dword [esi + 0x14], ecx
call fcn.004dcfd0
mov ecx, dword [esi + 0x14]
test al, al
jne 0x4054a0
mov byte [ecx], 1
jmp 0x4054a0
call fcn.004dcfd0
movzx edx, byte [ebx + 4]
lea ecx, [ebx + 4]
test dl, dl
je 0x4055ad
test al, al
je 0x4054a0
jmp 0x4054e9
mov edi, dword [esi + 0xc]
mov ecx, edi
call fcn.00403540
push edi
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [esi + 0x4c]
cmp dword [esi + 0xfc], 0
jne 0x403edf
jmp 0x403ef0
mov dword [esi + 4], 0
mov edx, dword [ebx + 0x10]
mov edi, dword [esi + 0x4c]
mov dword [esi + 0x14], ecx
cmp edx, dword [ebx + 8]
jne 0x405575
lea ecx, [ebx + 8]
call fcn.00469720
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov ecx, dword [esi + 0xc]
mov dword [eax + edx*4], ecx
inc edx
cmp byte [esi + 4], 0
mov dword [ebx + 0x10], edx
jne 0x405594
mov eax, dword [0x5371c4]
test eax, 0x7fffffff
jne 0x4055b4
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp dword [esi + 0xfc], 0
jne 0x403edf
jmp 0x403ef0
xor al, 1
mov dword [esi + 4], eax
jmp 0x40555c
call fcn.004dcfd0
test al, al
jne 0x405594
mov eax, dword [esi + 0x14]
mov byte [eax], 1
jmp 0x405594
test ebx, ebx
je 0x403e68
shr ebx, 1
jmp 0x405631
cmp edi, dword [esi + 0x10c]
mov eax, dword [esi + 0x118]
mov ecx, dword [esi + 0x114]
je 0x4056ea
shr eax, 4
jmp 0x4055fa
add ecx, 0x10
dec eax
je 0x4056ea
cmp dword [ecx - 4], 0
je 0x4055f0
push dword [ecx]
push 0
push dword [0x5371d8]
mov ebx, ecx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
mov ecx, ebx
jmp 0x4055f0
call fcn.00427530
mov eax, dword [eax]
shr ebx, 1
mov eax, dword [eax + 0x108]
cmp eax, ebx
cmova ebx, eax
mov eax, dword [ebp + 0x14]
sub eax, edi
mov dword [esi + 0x144], ebx
mov dword [esi + 0x20], edi
jb 0x40596e
mov ecx, dword [ebp + 0x10]
mov ebx, eax
lea eax, [esi + 0x140]
lea edx, [esi + 0x144]
mov dword [esi + 0x90], eax
mov eax, edi
shl eax, 4
add eax, ecx
lea ecx, [esi + 0x20]
mov dword [esi + 0x94], ecx
mov dword [esi + 0x98], edx
mov dword [esi + 0x9c], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 0xa0], ebx
mov dword [esi + 0xa4], eax
mov dword [esi + 0xa8], ecx
mov dword [esi + 0xac], edx
mov edx, dword [ebp + 0x10]
mov dword [esi + 0xb0], edx
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], eax
call fcn.00401cc0
test eax, eax
je 0x405951
mov edx, dword [eax]
test edx, edx
jne 0x4056da
call fcn.00427530
mov edi, dword [eax]
call fcn.00401cc0
test eax, eax
je 0x405951
mov edx, dword [eax]
test edx, edx
je 0x4056fe
cmp dword [edx + 0x8c], edi
jne 0x405710
lea ecx, [esi + 0x90]
push 0
call fcn.00401360
add esp, 4
mov eax, dword [esi + 0x170]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add edi, 0x40
lea edx, [esi + 0x90]
mov ecx, edi
call fcn.004d5210
jmp 0x4056ea
add edi, 0x40
lea eax, [esi + 0x90]
mov ecx, edi
push eax
call fcn.004d55a0
jmp 0x4056e7
mov ecx, ebx
push 0x4de8f4
call fcn.004d63d0
call fcn.004dd110
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x4dec68
call fcn.004d6490
mov ecx, str.attempt_to_calculate_the_remainder_with_a_divisor_of_zero
mov edx, 0x39
push 0x4de8e4
call fcn.004d6490
lea edx, [esi + 0x54]
lea ecx, [esi + 0x70]
mov dword [esi + 0x20], 0x4de8b4
mov dword [esi + 0x24], 2
mov dword [esi + 0x30], 0
mov dword [esi + 0x54], eax
mov dword [esi + 0x70], edx
mov dword [esi + 0x28], ecx
lea ecx, [esi + 0x20]
mov edx, 0x4de8c4
mov dword [esi + 0x74], 0x442860
mov dword [esi + 0x2c], 1
call fcn.004d6340
mov dword [esi + 0xe8], ecx
lea eax, [esi + 0x54]
lea edx, [esi + 0xe8]
lea ecx, [esi + 0x70]
mov dword [esi + 0x20], 0x4e30fc
mov dword [esi + 0x24], 2
mov dword [esi + 0x30], 0
mov dword [esi + 0x28], ecx
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], 0x41f5a0
mov dword [esi + 0x78], edx
lea ecx, [esi + 0x20]
mov edx, 0x4e7380
mov dword [esi + 0x7c], 0x41fd60
mov dword [esi + 0x2c], 2
call fcn.004d6340
mov ecx, eax
mov edx, edi
push 0x4def00
call fcn.004d6620
mov ecx, edi
push 0x4def00
call fcn.004d6430
mov ecx, 4
mov edx, 0x1f4
call fcn.004d6180
mov ecx, 1
call fcn.004d6180
call fcn.0041f600
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
mov edx, 0x46
push 0x4e445c
push 0x4dec78
lea eax, [esi + 0x54]
push eax
call fcn.004d6720
mov eax, dword [esi + 0x18]
jmp 0x4058cd
mov eax, dword [esi + 4]
mov dword [esi + 0x68], eax
push 0x532fc4
call fcn.004d6620
add esp, 4
jmp 0x405941
mov ecx, dword [esi + 4]
mov dword [esi + 0x68], ecx
mov ecx, edx
mov edx, eax
push 0x532fc4
call fcn.004d6430
add esp, 4
jmp 0x405941
mov ecx, str.internal_error:_entered_unreachable_code_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_src_vecmod.rs4S
mov edx, 0x28
push 0x4de964
call fcn.004d6490
mov eax, dword [esi + 0x6c]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x10]
mov byte [esi + 0x24], al
push 0x4dea5c
push 0x4decc8
lea eax, [esi + 0x20]
push eax
call fcn.004d6720
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0xe0]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0xe4]
mov ecx, dword [esi + 0x18]
mov edx, 0x2b
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x28], eax
mov dword [esi + 0x24], ecx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x4def10
push 0x4dec88
lea eax, [esi + 0x20]
push eax
call fcn.004d6720
lea ecx, [esi + 0x70]
lea edx, [esi + 0x20]
mov dword [esi + 0x20], 0
call fcn.004d5d80
mov eax, dword [esi + 4]
mov edx, edi
mov ecx, 1
mov dword [esi + 0x178], 0
mov dword [esi + 0x104], eax
call fcn.004d6180
jmp 0x405941
mov dword [esi + 0x104], eax
mov dword [esi + 0x178], 0
call fcn.0041f600
ud2
mov ecx, edi
mov edx, ebx
push 0x4debb4
call fcn.004d6280
lea eax, [esi + 0x54]
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
mov edx, 0x46
push 0x4e445c
push 0x4dec78
push eax
call fcn.004d6720
mov ecx, str.assertion_failed:_mid___self.len___rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcescape.rs
mov edx, 0x23
push 0x4dedcc
call fcn.004d6490
test eax, eax
je 0x405997
push dword [esi + 0x48]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x4dea6c
call fcn.004d6490
lea eax, [esi + 0x54]
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
mov edx, 0x46
push 0x4e445c
push 0x4e287c
push eax
call fcn.004d6720
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x4de9c8
call fcn.004d6490
lea edx, [esi + 0xe8]
lea ecx, [esi + 0x54]
mov dword [esi + 0x20], 0x5340e0
mov dword [esi + 0x24], 1
mov dword [esi + 0x30], 0
mov dword [esi + 0xe8], eax
mov dword [esi + 0x54], edx
mov dword [esi + 0x28], ecx
lea ecx, [esi + 0x20]
mov edx, 0x534118
mov dword [esi + 0x58], 0x423090
mov dword [esi + 0x2c], 1
call fcn.004d6340
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
sub esp, 0x1c
lea esi, [ebp - 0x17c]
mov ebp, dword [esi + 0x168]
mov eax, dword [esi + 8]
cmp dword [eax + 4], 0
je 0x405a6c
mov eax, dword [esi + 8]
cmp dword [eax + 8], 9
jb 0x405a5b
mov eax, dword [esi + 0x14]
mov eax, dword [eax - 4]
mov dword [esi + 0x14], eax
push dword [esi + 0x14]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [esi + 0xc]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esi + 4]
mov dword [esi + 0x68], eax
add esp, 0x1c
pop ebp
ret