Function at 0x4ed400
Capabilities:
Check os version
Create process on windows
Encode data using base64
Get common file path
Query environment variable
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x590
mov esi, esp
mov dword [esi + 0x578], ebp
call 0x4ed41c
pop eax
mov dword [esi + 0x57c], esp
mov dword [esi + 0x588], 0xffffffff
mov dword [esi + 0x584], 0x56d420
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x30], edx
mov dword [esi + 0xcc], eax
mov eax, dword fs:[0]
mov dword [esi + 0x580], eax
lea eax, [esi + 0x580]
mov dword fs:[0], eax
movzx eax, byte [edx + 0x34]
mov ecx, dword [edx + 0x30]
test al, al
jne 0x4ed483
test ecx, ecx
jne 0x4ed483
mov dword [esi + 0x13c], 0
mov dword [esi + 0x80], 0
jmp 0x4edf11
test al, al
mov dword [esi + 0x68], 0
mov dword [esi + 0x70], 0
jne 0x4ed6cf
mov dword [esi + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
test eax, eax
je 0x4f0921
mov edi, eax
mov dword [esi + 0x3c], eax
nop
cmp word [edi], 0
je 0x4ed6c0
mov ecx, edi
xor edi, edi
mov edx, 0xfffffffe
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, edi
mov eax, edx
inc edi
add edx, 2
cmp word [ecx + ebx*2], 0
jne 0x4ed4d0
lea edi, [ecx + edi*2]
cmp ebx, 1
mov dword [esi + 0xc], ecx
je 0x4ed4b0
test ebx, ebx
je 0x4f0835
xor edx, edx
nop word cs:[eax + eax]
nop
mov ecx, dword [esi + 0xc]
cmp word [ecx + edx*2 + 2], 0x3d
je 0x4ed520
inc edx
add eax, 0xfffffffe
jne 0x4ed500
jmp 0x4ed4b0
lea eax, [edx + 1]
cmp edx, ebx
mov dword [esi + 0x18], edi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x588], 0x2b
jae 0x4f0858
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0x98]
push eax
call fcn.004e1640
add esp, 4
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x10]
add edi, 2
mov eax, edx
sub eax, edi
jb 0x4f086f
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x588], 0x2c
lea edx, [ecx + edi*2]
lea ecx, [esi + 0x160]
push eax
call fcn.004e1640
add esp, 4
movq xmm0, qword [esi + 0xa0]
mov edi, dword [esi + 0x98]
mov eax, dword [esi + 0x9c]
lea edx, [esi + 0x98]
lea ecx, [esi + 0x40]
movdqa xmmword [esi + 0x560], xmm0
cmp byte [esi + 0x564], 2
je 0x4ed6c0
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x160]
mov ebx, dword [esi + 0x168]
movdqa xmmword [esi + 0x80], xmm0
mov dword [esi + 0x98], edi
mov dword [esi + 0x588], 0x2e
mov dword [esi + 0x20], edi
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x164]
mov dword [esi + 0x28], ebx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x16c]
mov dword [esi + 0x24], eax
movd eax, xmm0
add eax, edi
mov dword [esi + 0x9c], eax
mov word [esi + 0xa0], 0
call fcn.004f1690
mov eax, dword [esi + 0x20]
movaps xmm0, xmmword [esi + 0x80]
mov byte [esi + 0x95], 0
mov dword [esi + 0x588], 0x2d
lea ecx, [esi + 0x40]
lea edx, [esi + 0x68]
mov dword [esi + 0x16c], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x170], eax
mov eax, dword [esi + 0x48]
movlps qword [esi + 0x174], xmm0
movq xmm0, qword [esi + 0x40]
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0xc]
movq qword [esi + 0x160], xmm0
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0xa4], eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0xa0], eax
lea eax, [esi + 0x98]
push eax
lea eax, [esi + 0x160]
push eax
call fcn.004f18a0
add esp, 8
cmp byte [esi + 0x4c], 2
mov edi, dword [esi + 0x18]
je 0x4ed4b0
cmp dword [esi + 0x44], 0
je 0x4ed4b0
mov ecx, dword [esi + 0x40]
mov edx, 1
call fcn.004040f0
jmp 0x4ed4b0
push dword [esi + 0x3c]
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov eax, dword [edx + 0x28]
mov ebx, dword [edx + 0x2c]
xor edx, edx
mov dword [esi + 0x18], 0
test eax, eax
mov dword [esi + 0xc], eax
setne dl
cmove ecx, eax
jmp 0x4ed6fd
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], 0
test ecx, ecx
je 0x4edd62
mov edi, dword [esi + 0x18]
test edx, edx
je 0x4ed730
test edi, edi
jne 0x4ed730
mov edx, 1
test ebx, ebx
je 0x4ed739
mov edi, dword [esi + 0xc]
nop dword [eax]
mov edi, dword [edi + 0x1ec]
dec ebx
jne 0x4ed720
jmp 0x4ed73c
test edx, edx
jne 0x4ed745
jmp 0x4f0773
mov edi, dword [esi + 0xc]
xor ebx, ebx
mov dword [esi + 0xc], 0
movzx eax, word [edi + 0x1ea]
cmp ebx, eax
jb 0x4ed773
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x4f051b
movzx ebx, word [edi + 0x1e8]
inc dword [esi + 0xc]
mov edi, eax
cmp bx, word [eax + 0x1ea]
jae 0x4ed750
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xc]
test edx, edx
je 0x4ed7a0
mov eax, dword [edi + ebx*4 + 0x1f0]
mov dword [esi + 0x1c], 0
dec edx
je 0x4ed799
nop
mov eax, dword [eax + 0x1ec]
dec edx
jne 0x4ed790
mov dword [esi + 0x18], eax
jmp 0x4ed7a9
lea eax, [ebx + 1]
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], eax
lea eax, [ebx + ebx*8]
dec ecx
mov edx, dword [esi + 0x10]
lea eax, [eax + eax*2]
add eax, ebx
shl ebx, 4
cmp byte [edi + ebx + 0xc], 2
lea eax, [edi + eax + 0xb4]
jne 0x4ed830
mov edi, dword [esi + 0x68]
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0xc], 0
test edi, edi
je 0x4ed6fd
mov dword [esi + 0x14], ecx
mov ecx, eax
mov edx, edi
mov eax, dword [eax]
mov ebx, dword [esi + 0x6c]
mov edi, dword [ecx + 8]
mov dword [esi + 0x588], 0x26
lea ecx, [esi + 0x40]
mov dword [esi + 0x80], edx
push edi
push eax
mov dword [esi + 0x20], ebx
push ebx
call fcn.004f2c50
add esp, 0xc
cmp dword [esi + 0x40], 0
je 0x4ed9f7
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x1c]
jmp 0x4ed6fd
mov edx, dword [eax + 0xc]
mov dword [esi + 0x14], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x80], edx
mov edx, dword [eax + 0x14]
test edx, edx
mov dword [esi + 0xc], edx
je 0x4ed86e
js 0x4f0805
movzx eax, byte [0x64fd9c]
mov ecx, edx
mov edx, 1
call fcn.00404090
mov edx, dword [esi + 0xc]
test eax, eax
jne 0x4ed873
jmp 0x4f07d4
mov eax, 1
push edx
push dword [esi + 0x80]
mov dword [esi + 0x80], eax
push eax
call fcn.00570db0
add esp, 0xc
mov eax, dword [esi + 0x20]
mov dword [esi + 0x20], 2
mov ecx, dword [eax]
movzx edx, byte [eax + 0x18]
mov dword [esi + 0x3c], ecx
mov ecx, dword [eax + 8]
xor eax, eax
mov byte [esi + 0x28], dl
test ecx, ecx
mov dword [esi + 0x24], ecx
je 0x4ed8e5
cmp ecx, 0x3fffffff
ja 0x4f07ad
add ecx, ecx
test ecx, ecx
js 0x4f0799
je 0x4ed8e5
movzx eax, byte [0x64fd9c]
mov edx, 2
mov dword [esi + 0x38], ecx
call fcn.00404090
test eax, eax
mov dword [esi + 0x20], eax
je 0x4f0819
mov eax, dword [esi + 0x38]
add edi, ebx
push eax
push dword [esi + 0x3c]
mov ebx, dword [esi + 0x20]
push ebx
call fcn.00570db0
add esp, 0xc
mov eax, dword [esi + 0x80]
mov dword [esi + 0x16c], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
movzx eax, byte [esi + 0x28]
mov byte [esi + 0x178], al
mov eax, dword [esi + 0x24]
mov dword [esi + 0x160], ebx
mov dword [esi + 0x164], eax
mov dword [esi + 0x168], eax
mov ebx, dword [edi + 8]
mov eax, dword [edi]
test ebx, ebx
je 0x4ed970
mov dword [esi + 0x3c], eax
js 0x4f07ed
movzx eax, byte [0x64fd9c]
mov ecx, ebx
mov edx, 1
call fcn.00404090
mov edx, ebx
mov ebx, eax
test eax, eax
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x588], 0x28
jne 0x4ed977
jmp 0x4f07c1
mov edx, ebx
mov ebx, 1
mov dword [esi + 0x28], edx
push edx
push eax
push ebx
call fcn.00570db0
add esp, 0xc
movzx eax, byte [edi + 0xc]
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x98], ebx
mov byte [esi + 0x67], 0
mov dword [esi + 0x588], 0x28
lea edx, [esi + 0x68]
mov dword [esi + 0x9c], ecx
mov dword [esi + 0xa0], ecx
mov byte [esi + 0xa4], al
lea eax, [esi + 0x98]
lea ecx, [esi + 0x40]
push eax
lea eax, [esi + 0x160]
push eax
call fcn.004f18a0
add esp, 8
cmp byte [esi + 0x4c], 2
mov ebx, dword [esi + 0x1c]
je 0x4ed6f0
cmp dword [esi + 0x44], 0
je 0x4ed6f0
mov ecx, dword [esi + 0x40]
mov edx, 1
call fcn.004040f0
jmp 0x4ed6f0
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x4c]
mov byte [esi + 0x12c], 0
test ecx, ecx
jne 0x4eda57
mov dword [esi + 0x98], eax
lea eax, [esi + 0x12c]
mov dword [esi + 0x9c], 0
mov dword [esi + 0xa0], edx
lea ecx, [esi + 0x160]
lea edx, [esi + 0x98]
push eax
call fcn.004f2dd0
add esp, 4
jmp 0x4edc6e
movzx edx, word [eax + 0x1ea]
mov eax, dword [eax + edx*4 + 0x1ec]
dec ecx
jne 0x4eda50
movzx ecx, word [eax + 0x1ea]
mov dword [esi + 0x118], eax
lea eax, [esi + 0x12c]
mov dword [esi + 0x11c], 0
mov dword [esi + 0x588], 0x26
lea edx, [esi + 0x118]
dec ecx
mov dword [esi + 0x120], ecx
lea ecx, [esi + 0x160]
push eax
call fcn.004f2dd0
add esp, 4
movsd xmm2, qword [esi + 0x178]
movsd xmm1, qword [esi + 0x170]
mov eax, dword [esi + 0x188]
movq xmm0, qword [esi + 0x180]
mov edx, dword [esi + 0x18c]
mov ecx, dword [esi + 0x194]
movsd qword [esi + 0xb0], xmm2
movsd qword [esi + 0xa8], xmm1
movsd xmm2, qword [esi + 0x160]
movsd xmm1, qword [esi + 0x168]
mov dword [esi + 0xc0], eax
movq qword [esi + 0xb8], xmm0
movsd qword [esi + 0xa0], xmm1
movsd qword [esi + 0x98], xmm2
movzx eax, word [edx + 0x1ea]
cmp ecx, eax
jae 0x4edb1b
mov eax, edx
jmp 0x4edb53
mov edi, dword [esi + 0x190]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov eax, dword [edx + 0xb0]
test eax, eax
je 0x4edb4f
movzx ecx, word [edx + 0x1e8]
inc edi
mov edx, eax
cmp cx, word [eax + 0x1ea]
jae 0x4edb30
jmp 0x4edb53
xor eax, eax
mov ecx, edi
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*2]
add edx, ecx
shl ecx, 4
mov edi, dword [eax + edx + 0xcc]
mov dword [esi + 0xe8], edi
mov edi, dword [esi + 0xb0]
movsd xmm0, qword [eax + edx + 0xc4]
movsd qword [esi + 0xe0], xmm0
movsd xmm0, qword [eax + edx + 0xb4]
movsd xmm1, qword [eax + edx + 0xbc]
movsd qword [esi + 0xd8], xmm1
movsd qword [esi + 0xd0], xmm0
mov dword [eax + edx + 0xcc], edi
lea edi, [esi + 0xb4]
movsd xmm0, qword [esi + 0xa8]
movsd qword [eax + edx + 0xc4], xmm0
movsd xmm0, qword [esi + 0x98]
movsd xmm1, qword [esi + 0xa0]
movsd qword [eax + edx + 0xbc], xmm1
movsd qword [eax + edx + 0xb4], xmm0
lea edx, [esi + 0xec]
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [eax + ecx], xmm0
movsd qword [eax + ecx + 8], xmm1
movsd xmm2, qword [esi + 0xe8]
movsd xmm1, qword [esi + 0xe0]
mov eax, dword [esi + 0xf8]
movq xmm0, qword [esi + 0xf0]
movsd qword [esi + 0x178], xmm2
movsd qword [esi + 0x170], xmm1
movsd xmm2, qword [esi + 0xd0]
movsd xmm1, qword [esi + 0xd8]
mov dword [esi + 0x188], eax
movq qword [esi + 0x180], xmm0
movsd qword [esi + 0x168], xmm1
movsd qword [esi + 0x160], xmm2
mov ecx, dword [esi + 0x164]
mov edx, dword [esi + 0x16c]
mov eax, dword [esi + 0x160]
dec dword [esi + 0x70]
cmp byte [esi + 0x12c], 0
mov ebx, dword [esi + 0x178]
mov edi, dword [esi + 0x188]
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x170]
mov dword [esi + 0x60], edx
mov edx, dword [esi + 0x17c]
mov dword [esi + 0x38], eax
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 0x180]
mov dword [esi + 0x5c], edx
mov dword [esi + 0x3c], ecx
je 0x4edcee
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4f088d
mov ecx, dword [esi + 0x80]
dec edx
mov eax, dword [ecx + 0x1ec]
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], edx
mov edx, 4
mov dword [eax + 0xb0], 0
call fcn.004040f0
cmp bl, 2
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x1c]
je 0x4ed6fd
cmp dword [esi + 0x28], 0
je 0x4edd19
mov ecx, dword [esi + 0x60]
mov edx, 1
call fcn.004040f0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
cmp dword [esi + 0x24], 0
je 0x4edd32
mov ecx, dword [esi + 0x38]
mov edx, 2
call fcn.004040f0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov eax, edi
movzx eax, al
cmp eax, 2
je 0x4ed6fd
cmp dword [esi + 0x3c], 0
je 0x4ed6fd
mov ecx, dword [esi + 0x5c]
mov edx, 1
call fcn.004040f0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
jmp 0x4ed6fd
mov eax, dword [esi + 0x70]
movq xmm0, qword [esi + 0x68]
mov ecx, 4
mov edx, 1
mov dword [esi + 0x148], eax
movq qword [esi + 0x140], xmm0
mov dword [esi + 0x13c], 1
movzx eax, byte [0x64fd9c]
call fcn.00404090
test eax, eax
je 0x4f08b3
mov ecx, eax
mov dword [eax], 0x48544150
mov dword [esi + 0xd0], eax
lea edx, [esi + 0xd0]
mov dword [esi + 0x588], 0x25
mov dword [esi + 0x20], eax
add ecx, 4
mov dword [esi + 0xd4], ecx
lea ecx, [esi + 0x98]
mov word [esi + 0xd8], 0
call fcn.004f1690
mov ecx, dword [esi + 0x20]
movq xmm0, qword [esi + 0x98]
mov eax, dword [esi + 0xa0]
mov dword [esi + 0x16c], ecx
mov dword [esi + 0x170], 4
mov dword [esi + 0x174], 4
mov byte [esi + 0x178], 0
movq qword [esi + 0x160], xmm0
mov dword [esi + 0x1c], eax
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0x160]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x140]
test eax, eax
je 0x4ededf
mov ecx, dword [esi + 0x144]
mov dword [esi + 0x80], 0
mov dword [esi + 0x14], ecx
movzx edx, word [eax + 0x1ea]
lea ecx, [eax + 0xb4]
mov dword [esi + 0x18], eax
mov edi, 0xffffffff
lea eax, [edx + edx*8]
mov dword [esi + 0x24], edx
lea ebx, [eax + eax*2]
add ebx, edx
nop dword [eax + eax]
test ebx, ebx
je 0x4edea0
lea eax, [ecx + 0x1c]
mov dword [esi + 0xc], eax
push 1
push dword [ecx + 8]
push dword [ecx]
push dword [esi + 0x1c]
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
mov ecx, dword [esi + 0xc]
inc edi
add ebx, 0xffffffe4
cmp eax, 3
je 0x4ede70
cmp eax, 1
jne 0x4edeba
jmp 0x4edea3
mov edi, dword [esi + 0x24]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
sub ecx, 1
jb 0x4edeeb
mov eax, dword [eax + edi*4 + 0x1ec]
mov dword [esi + 0x14], ecx
jmp 0x4ede4b
mov ecx, dword [esi + 0x18]
cmp eax, 2
jne 0x4f0700
test ecx, ecx
je 0x4edeeb
shl edi, 4
mov eax, dword [ecx + edi]
mov ecx, dword [ecx + edi + 8]
mov dword [esi + 0x80], eax
mov dword [esi + 0x24], ecx
jmp 0x4edeeb
mov dword [esi + 0x80], 0
jmp 0x4edeee
mov ecx, dword [esi + 0x20]
mov edx, 1
call fcn.004040f0
cmp dword [esi + 0x164], 0
je 0x4edf0e
mov ecx, dword [esi + 0x10]
mov edx, 2
call fcn.004040f0
mov edx, dword [esi + 0x30]
mov edi, dword [edx + 0x20]
test edi, edi
je 0x4edf7f
mov edx, dword [edx + 0x18]
mov eax, 0x4f3320
cmp edi, 4
jb 0x4edf52
mov eax, dword [edx]
xor ecx, ecx
mov dword [esi + 0x588], 2
bswap eax
cmp eax, 0x5c5c3f5c
setb cl
cmp eax, 0x5c5c3f5d
mov eax, 0x4f3320
adc ecx, 0xffffffff
mov ecx, 0x4f3310
cmove eax, ecx
movzx ecx, byte [edi + edx - 1]
mov dword [esi + 0x18], edx
mov dword [esi + 0xc], edi
mov byte [esi + 0xb], 1
mov dword [esi + 0x588], 2
mov dword [esi + 0x10], ecx
push ecx
call eax
add esp, 4
mov ebx, dword [esi + 0xc]
test al, al
je 0x4ee009
mov byte [esi + 0x6c], 2
mov dword [esi + 0x70], 0x60b2d0
mov edx, dword [esi + 0x6c]
mov ebx, dword [esi + 0x70]
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x7c]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], 2
cmp dword [esi + 0x13c], 0
je 0x4ee0bb
mov ecx, dword [esi + 0x140]
test ecx, ecx
je 0x4ee08d
mov edx, dword [esi + 0x144]
mov eax, dword [esi + 0x148]
mov dword [esi + 0x164], 0
mov dword [esi + 0x168], ecx
mov dword [esi + 0x588], 1
mov dword [esi + 0x16c], edx
mov dword [esi + 0x174], 0
mov dword [esi + 0x178], ecx
mov ecx, 1
mov dword [esi + 0x17c], edx
jmp 0x4ee091
mov edi, dword [esi + 0x18]
xor eax, eax
cmp ebx, 3
mov ecx, 0
jbe 0x4ee0df
movzx ecx, byte [ebx + edi - 4]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x2e
jne 0x4ee0dd
movzx ecx, byte [edi + ebx - 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x4ee0dd
movzx ecx, byte [edi + ebx - 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x78
jne 0x4ee0dd
mov edx, dword [esi + 0x10]
mov ecx, edx
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, dl
cmp cl, 0x65
sete cl
jmp 0x4ee0df
xor ecx, ecx
xor eax, eax
mov dword [esi + 0x160], ecx
mov dword [esi + 0x170], ecx
lea ecx, [esi + 0x160]
mov dword [esi + 0x180], eax
mov dword [esi + 0x588], 1
call fcn.004f1610
mov eax, dword [ebp + 8]
cmp dword [eax], 4
jb 0x4ee0c9
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0x580]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
lea edx, [edi + ebx]
mov dword [esi + 0x1c], edx
nop word cs:[eax + eax]
nop
cmp ebx, eax
je 0x4ee16d
movzx edx, byte [edi + eax]
cmp edx, 0x2f
je 0x4ee103
inc eax
cmp edx, 0x5c
jne 0x4ee0f0
test cl, cl
je 0x4ee241
mov byte [esi + 0xb], 1
mov dword [esi + 0x588], 2
lea ecx, [esi + 0x160]
mov edx, edi
push ebx
call fcn.004df280
add esp, 4
mov edx, dword [esi + 0x160]
mov eax, dword [esi + 0x164]
mov ecx, dword [esi + 0x168]
test edx, edx
je 0x4ee32a
mov dword [esi + 0x160], edx
mov dword [esi + 0x168], ecx
lea ecx, [esi + 0x68]
lea edx, [esi + 0x160]
mov dword [esi + 0x164], eax
mov byte [esi + 0xb], 1
call fcn.004f3340
jmp 0x4eed28
mov eax, edi
xor edi, edi
jmp 0x4ee18b
xor edi, edi
test dx, dx
je 0x4ee317
mov dx, 1
test di, di
jne 0x4ee180
cmp eax, dword [esi + 0x1c]
je 0x4ee375
movzx ebx, byte [eax]
movzx ecx, bl
test bl, bl
js 0x4ee1ad
mov ebx, dword [esi + 0xc]
inc eax
jmp 0x4ee20e
movzx edi, byte [eax + 1]
and ecx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x4ee203
mov dword [esi + 0x10], eax
movzx eax, byte [eax + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp bl, 0xf0
mov dword [esi + 0x14], eax
jb 0x4ee217
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
and ecx, 7
shl ecx, 0x12
movzx edi, byte [eax + 3]
add eax, 4
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x14]
and edi, 0x3f
shl eax, 6
or edi, eax
mov eax, dword [esi + 0x10]
or ecx, edi
cmp ecx, 0xffff
jbe 0x4ee20e
jmp 0x4ee22e
mov ebx, dword [esi + 0xc]
shl ecx, 6
add eax, 2
or ecx, edi
xor edi, edi
mov edx, ecx
jmp 0x4ee182
mov eax, dword [esi + 0x10]
shl ecx, 0xc
mov ebx, dword [esi + 0xc]
add ecx, dword [esi + 0x14]
add eax, 3
cmp ecx, 0xffff
jbe 0x4ee20e
and ecx, 0x3ff
or ecx, 0xdc00
mov edi, ecx
jmp 0x4ee182
test ebx, ebx
js 0x4f0994
movzx eax, byte [0x64fd9c]
mov ecx, ebx
mov edx, 1
call fcn.00404090
test eax, eax
je 0x4f09ac
push ebx
push edi
push eax
mov edi, eax
call fcn.00570db0
add esp, 0xc
mov dword [esi + 0x160], edi
mov dword [esi + 0x164], ebx
mov dword [esi + 0x168], ebx
mov dword [esi + 0x10], edi
mov byte [esi + 0x16c], 0
mov dword [esi + 0x588], 0x21
lea ecx, [esi + 0x160]
mov edx, 0x638637
push 4
call fcn.004e6230
add esp, 4
mov edx, dword [esi + 0x160]
mov eax, dword [esi + 0x164]
mov edi, dword [esi + 0x168]
mov byte [esi + 0x96], 1
mov dword [esi + 0x588], 0x20
lea ecx, [esi + 0xd0]
mov dword [esi + 0x10], eax
mov dword [esi + 0x158], eax
mov dword [esi + 0x15c], edx
mov dword [esi + 0xc], edx
mov dword [esi + 0x14], edi
push edi
call fcn.004f3400
add esp, 4
cmp dword [esi + 0xd0], 0
je 0x4ee33c
mov eax, dword [esi + 0xd8]
movq xmm0, qword [esi + 0xd0]
mov dword [esi + 0x70], eax
movq qword [esi + 0x68], xmm0
jmp 0x4eed15
mov dword [esi + 0x6c], 2
mov dword [esi + 0x70], 0x60b284
jmp 0x4edf8a
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], ecx
mov dword [esi + 0x68], 0
jmp 0x4eed28
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
mov dword [esi + 0x588], 0x22
call fcn.004ecaa0
test eax, eax
je 0x4eecb1
cmp edx, 2
jne 0x4ee3a4
movzx ecx, word [eax]
cmp ecx, 0x2e2e
jne 0x4ee3a4
mov edi, 2
xor ebx, ebx
jmp 0x4eec88
mov edx, dword [esi + 0x18]
cmp ebx, 7
ja 0x4ee3db
mov ecx, dword [esi + 0x24]
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
cmp byte [edx + eax], 0x2e
je 0x4ee400
inc eax
cmp ebx, eax
jne 0x4ee390
mov dword [esi + 0x28], 0
jmp 0x4ee407
mov edi, edx
nop word cs:[eax + eax]
test edi, edi
je 0x4ee3f7
mov ecx, edi
dec edi
cmp byte [eax + ecx - 1], 0x2e
jne 0x4ee3b0
mov ebx, edx
sub ebx, ecx
jb 0x4f0a05
test edi, edi
je 0x4eec84
mov edx, ebx
mov ebx, eax
add ebx, ecx
jmp 0x4eec88
mov ecx, 0x2e
push ebx
call fcn.00440630
add esp, 4
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x24]
jmp 0x4ee40d
mov ebx, eax
xor eax, eax
jmp 0x4eec88
mov dword [esi + 0x28], 1
mov eax, dword [esi + 0x80]
test eax, eax
mov dword [esi + 0x588], 2
je 0x4ee57c
add ecx, eax
mov dword [esi + 0x98], eax
lea edx, [esi + 0x98]
mov byte [esi + 0xb], 1
mov dword [esi + 0x9c], ecx
lea ecx, [esi + 0x160]
mov word [esi + 0xa0], 0
mov byte [esi + 0xa4], 1
call fcn.004e5d10
jmp 0x4ee475
lea ecx, [esi + 0x160]
lea edx, [esi + 0x98]
mov byte [esi + 0xb], 1
call fcn.004e5d10
movzx eax, byte [esi + 0x16c]
cmp al, 2
je 0x4ee57c
mov edi, dword [esi + 0x168]
mov ecx, dword [esi + 0x160]
mov edx, dword [esi + 0x164]
test edi, edi
jne 0x4ee4aa
test edx, edx
je 0x4ee460
mov edx, 1
call fcn.004040f0
jmp 0x4ee460
lea ebx, [esi + 0x16d]
mov byte [esi + 0x10], al
lea eax, [esi + 0xdd]
mov dword [esi + 0x588], 0x1f
movzx ebx, word [ebx]
mov word [eax], bx
mov ebx, eax
lea eax, [esi + 0x16d]
mov ah, byte [eax + 2]
mov al, byte [esi + 0x10]
mov byte [ebx + 2], ah
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], edx
mov edx, dword [esi + 0x18]
mov dword [esi + 0xd8], edi
mov byte [esi + 0xdc], al
lea ecx, [esi + 0xd0]
push dword [esi + 0xc]
call fcn.004e7f90
add esp, 4
cmp dword [esi + 0x28], 1
je 0x4ee517
lea ecx, [esi + 0xd0]
call fcn.004ecbc0
mov edx, dword [esi + 0xd0]
lea ecx, [esi + 0x160]
mov dword [esi + 0x10], edx
push dword [esi + 0xd8]
call fcn.004f3400
add esp, 4
cmp dword [esi + 0xd4], 0
je 0x4ee54a
mov ecx, dword [esi + 0x10]
mov edx, 1
call fcn.004040f0
mov eax, dword [esi + 0x160]
test eax, eax
jne 0x4efc0f
lea ecx, [esi + 0x160]
lea edx, [esi + 0x98]
mov byte [esi + 0xb], 1
mov dword [esi + 0x588], 2
call fcn.004e5d10
jmp 0x4ee475
lea ecx, [esi + 0xd0]
mov byte [esi + 0xb], 1
call fcn.004e5fa0
cmp byte [esi + 0xdc], 2
jne 0x4ee5a8
lea ecx, [esi + 0xd0]
mov byte [esi + 0xb], 1
call fcn.004e1570
jmp 0x4ee693
mov eax, dword [esi + 0xd4]
mov ecx, dword [esi + 0xd0]
mov edx, dword [esi + 0xd8]
mov byte [esi + 0x97], 0
mov dword [esi + 0x588], 0x1d
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0xdc]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x80], edx
mov dword [esi + 0x20], eax
call fcn.004e9520
mov ecx, dword [esi + 0x80]
mov edi, dword [esi + 0x14]
mov dword [esi + 0x588], 0x1e
cmp ecx, edx
cmovb edx, ecx
test eax, eax
cmove edx, ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x160], ecx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x164], edi
mov dword [esi + 0x168], edx
mov edx, dword [esi + 0x18]
mov dword [esi + 0x16c], ecx
lea ecx, [esi + 0x160]
push dword [esi + 0xc]
call fcn.004e7f90
add esp, 4
cmp dword [esi + 0x28], 1
je 0x4ee645
lea ecx, [esi + 0x160]
call fcn.004ecbc0
mov edx, dword [esi + 0x160]
lea ecx, [esi + 0x98]
mov dword [esi + 0x20], edx
push dword [esi + 0x168]
call fcn.004f3400
add esp, 4
cmp dword [esi + 0x164], 0
je 0x4ee678
mov ecx, dword [esi + 0x20]
mov edx, 1
call fcn.004040f0
mov eax, dword [esi + 0x98]
test eax, eax
je 0x4ee693
mov ecx, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
jmp 0x4eeac2
mov edi, 0x200
xor ebx, ebx
mov dword [esi + 0x118], 2
mov dword [esi + 0x11c], 0
mov dword [esi + 0x120], 0
mov dword [esi + 0x24], 2
mov dword [esi + 0x14], 0
cmp edi, 0x201
jb 0x4ee6e1
jmp 0x4ee700
mov ebx, dword [esi + 0x10]
jbe 0x4ee7a9
cmp edi, 0x201
jae 0x4ee700
lea eax, [esi + 0x160]
mov dword [esi + 0x10], ebx
mov ebx, edi
mov dword [esi + 0x20], 0x200
mov edi, eax
jmp 0x4ee747
mov eax, dword [esi + 0x14]
sub edi, ebx
sub eax, ebx
cmp eax, edi
jae 0x4ee735
mov dword [esi + 0x588], 0x1b
lea ecx, [esi + 0x118]
mov edx, ebx
push edi
call fcn.00583db0
add esp, 4
mov eax, dword [esi + 0x118]
mov ebx, dword [esi + 0x11c]
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x24]
mov dword [esi + 0x120], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x10], ebx
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
mov dword [esi + 0x80], edi
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edi, eax
test eax, eax
jne 0x4ee771
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4ee856
cmp edi, ebx
jne 0x4ee6d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4f08d5
lea edi, [ebx + ebx]
test ebx, ebx
mov ebx, dword [esi + 0x10]
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jae 0x4ee700
jmp 0x4ee6e1
mov edx, dword [esi + 0x20]
mov dword [esi + 0x588], 0x1b
cmp edi, edx
ja 0x4f09f1
mov edx, dword [esi + 0x80]
lea ecx, [esi + 0xd0]
push edi
call fcn.004e1640
add esp, 4
mov edx, dword [esi + 0x18]
mov dword [esi + 0x588], 0x1c
lea ecx, [esi + 0xd0]
push dword [esi + 0xc]
call fcn.004e7f90
add esp, 4
cmp dword [esi + 0x28], 1
je 0x4ee802
lea ecx, [esi + 0xd0]
call fcn.004ecbc0
mov edx, dword [esi + 0xd0]
lea ecx, [esi + 0x40]
mov dword [esi + 0x14], edx
push dword [esi + 0xd8]
call fcn.004f3400
add esp, 4
cmp dword [esi + 0xd4], 0
je 0x4ee832
mov ecx, dword [esi + 0x14]
mov edx, 1
call fcn.004040f0
movq xmm0, qword [esi + 0x40]
mov eax, dword [esi + 0x48]
mov bl, 1
movq qword [esi + 0x9c], xmm0
mov dword [esi + 0xa4], eax
mov dword [esi + 0x98], 0
jmp 0x4ee875
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ebx, ebx
mov byte [esi + 0x9c], 0
mov dword [esi + 0xa0], eax
mov dword [esi + 0x98], 1
cmp dword [esi + 0x10], 0
je 0x4ee888
mov ecx, dword [esi + 0x24]
mov edx, 2
call fcn.004040f0
test bl, bl
je 0x4ee89a
mov eax, dword [esi + 0x9c]
test eax, eax
jne 0x4eeab6
lea ecx, [esi + 0x98]
mov byte [esi + 0xb], 1
mov dword [esi + 0x588], 2
call fcn.004f34b0
mov edi, 0x200
xor ebx, ebx
mov dword [esi + 0x118], 2
mov dword [esi + 0x11c], 0
mov dword [esi + 0x120], 0
mov dword [esi + 0x24], 2
mov dword [esi + 0x14], 0
cmp edi, 0x201
jb 0x4ee901
jmp 0x4ee920
mov ebx, dword [esi + 0x10]
jbe 0x4ee9c9
cmp edi, 0x201
jae 0x4ee920
lea eax, [esi + 0x160]
mov dword [esi + 0x10], ebx
mov ebx, edi
mov dword [esi + 0x20], 0x200
mov edi, eax
jmp 0x4ee967
mov eax, dword [esi + 0x14]
sub edi, ebx
sub eax, ebx
cmp eax, edi
jae 0x4ee955
mov dword [esi + 0x588], 0x19
lea ecx, [esi + 0x118]
mov edx, ebx
push edi
call fcn.00583db0
add esp, 4
mov eax, dword [esi + 0x118]
mov ebx, dword [esi + 0x11c]
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x24]
mov dword [esi + 0x120], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x10], ebx
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
mov dword [esi + 0x80], edi
push edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov edi, eax
test eax, eax
jne 0x4ee991
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4eea76
cmp edi, ebx
jne 0x4ee8f0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4f08fb
lea edi, [ebx + ebx]
test ebx, ebx
mov ebx, dword [esi + 0x10]
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jae 0x4ee920
jmp 0x4ee901
mov edx, dword [esi + 0x20]
mov dword [esi + 0x588], 0x19
cmp edi, edx
ja 0x4f0a21
mov edx, dword [esi + 0x80]
lea ecx, [esi + 0xd0]
push edi
call fcn.004e1640
add esp, 4
mov edx, dword [esi + 0x18]
mov dword [esi + 0x588], 0x1a
lea ecx, [esi + 0xd0]
push dword [esi + 0xc]
call fcn.004e7f90
add esp, 4
cmp dword [esi + 0x28], 1
je 0x4eea22
lea ecx, [esi + 0xd0]
call fcn.004ecbc0
mov edx, dword [esi + 0xd0]
lea ecx, [esi + 0x40]
mov dword [esi + 0x14], edx
push dword [esi + 0xd8]
call fcn.004f3400
add esp, 4
cmp dword [esi + 0xd4], 0
je 0x4eea52
mov ecx, dword [esi + 0x14]
mov edx, 1
call fcn.004040f0
movq xmm0, qword [esi + 0x40]
mov eax, dword [esi + 0x48]
mov bl, 1
movq qword [esi + 0x9c], xmm0
mov dword [esi + 0xa4], eax
mov dword [esi + 0x98], 0
jmp 0x4eea95
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ebx, ebx
mov byte [esi + 0x9c], 0
mov dword [esi + 0xa0], eax
mov dword [esi + 0x98], 1
cmp dword [esi + 0x10], 0
je 0x4eeaa8
mov ecx, dword [esi + 0x24]
mov edx, 2
call fcn.004040f0
test bl, bl
je 0x4eead9
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x4eead9
mov ecx, dword [esi + 0xa0]
mov ebx, dword [esi + 0xa4]
mov dword [esi + 0x20], eax
mov dword [esi + 0x14], ecx
mov edx, dword [esi + 0x30]
cmp ebx, 5
jae 0x4eed47
jmp 0x4eed61
lea ecx, [esi + 0x98]
mov byte [esi + 0xb], 1
mov dword [esi + 0x588], 2
call fcn.004f34b0
mov byte [esi + 0xb], 1
lea ecx, [esi + 0x40]
mov edx, str.PATHRUST_MIN_STACKfatal_runtime_error:_assertion_failed:_thread_info.stack_guard.get__.is_none____thread_info.thread.get__.is_none___n
push 4
call fcn.004e48d0
add esp, 4
cmp byte [esi + 0x4c], 2
je 0x4eec74
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
add edx, ecx
mov dword [esi + 0x98], ecx
mov dword [esi + 0x80], eax
mov dword [esi + 0x24], ecx
mov dword [esi + 0x9c], edx
mov word [esi + 0xa0], 0
mov byte [esi + 0xa4], 1
jmp 0x4eeb52
mov eax, dword [esi + 0x160]
test eax, eax
jne 0x4f018b
lea ecx, [esi + 0x160]
lea edx, [esi + 0x98]
mov dword [esi + 0x588], 0x17
call fcn.004e5d10
jmp 0x4eeb80
lea ecx, [esi + 0x160]
lea edx, [esi + 0x98]
call fcn.004e5d10
movzx eax, byte [esi + 0x16c]
cmp al, 2
je 0x4eec5e
mov edi, dword [esi + 0x168]
mov ecx, dword [esi + 0x160]
mov edx, dword [esi + 0x164]
test edi, edi
jne 0x4eebb5
test edx, edx
je 0x4eeb6f
mov edx, 1
call fcn.004040f0
jmp 0x4eeb6f
lea ebx, [esi + 0x16d]
mov byte [esi + 0x10], al
lea eax, [esi + 0xdd]
mov dword [esi + 0x588], 0x18
movzx ebx, word [ebx]
mov word [eax], bx
mov ebx, eax
lea eax, [esi + 0x16d]
mov ah, byte [eax + 2]
mov al, byte [esi + 0x10]
mov byte [ebx + 2], ah
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], edx
mov edx, dword [esi + 0x18]
mov dword [esi + 0xd8], edi
mov byte [esi + 0xdc], al
lea ecx, [esi + 0xd0]
push dword [esi + 0xc]
call fcn.004e7f90
add esp, 4
cmp dword [esi + 0x28], 1
je 0x4eec22
lea ecx, [esi + 0xd0]
call fcn.004ecbc0
mov edx, dword [esi + 0xd0]
lea ecx, [esi + 0x160]
mov dword [esi + 0x10], edx
push dword [esi + 0xd8]
call fcn.004f3400
add esp, 4
cmp dword [esi + 0xd4], 0
je 0x4eeb44
mov ecx, dword [esi + 0x10]
mov edx, 1
call fcn.004040f0
jmp 0x4eeb44
cmp dword [esi + 0x80], 0
je 0x4eec74
mov ecx, dword [esi + 0x24]
mov edx, 1
call fcn.004040f0
mov byte [esi + 0x6c], 2
mov dword [esi + 0x70], 0x60b2a4
jmp 0x4edf8a
xor ebx, ebx
mov edi, edx
test eax, eax
cmovne ebx, eax
test ebx, ebx
je 0x4eecb1
test eax, eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x588], 0x22
cmove edi, edx
mov edx, dword [esi + 0xc]
add ebx, edi
sub ebx, edx
cmp eax, ebx
cmovae eax, ebx
jmp 0x4eecb7
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov dword [esi + 0x588], 0x22
lea ecx, [esi + 0x160]
push eax
call fcn.004df280
add esp, 4
mov edx, dword [esi + 0x160]
mov eax, dword [esi + 0x164]
mov ecx, dword [esi + 0x168]
test edx, edx
je 0x4eed08
mov dword [esi + 0x160], edx
mov dword [esi + 0x168], ecx
lea ecx, [esi + 0x68]
lea edx, [esi + 0x160]
mov dword [esi + 0x164], eax
call fcn.004f3340
jmp 0x4eed15
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], ecx
mov dword [esi + 0x68], 0
mov ecx, dword [esi + 0xc]
cmp dword [esi + 0x10], 0
je 0x4eed28
mov edx, 1
call fcn.004040f0
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esi + 0x70]
mov edx, dword [esi + 0x30]
test eax, eax
mov dword [esi + 0x14], ecx
je 0x4ef3de
mov dword [esi + 0x20], eax
cmp ebx, 5
jb 0x4eed61
mov eax, dword [esi + 0x20]
cmp word [eax + ebx*2 - 0xa], 0x2e
jne 0x4eed61
mov eax, dword [esi + 0x20]
cmp word [eax + ebx*2 - 2], 0
je 0x4ef507
movzx ecx, byte [edx + 0x65]
mov eax, dword [edx + 0x48]
mov edi, dword [edx + 0x50]
xor edx, edx
mov dword [esi + 0xd0], 2
mov dword [esi + 0xd4], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0x588], 0x16
mov byte [esi + 0x10], cl
lea ecx, [esi + 0xd0]
mov dword [esi + 0xc], eax
mov dword [esi + 0x80], edi
call fcn.004df690
mov eax, dword [esi + 0xd0]
mov ecx, dword [esi + 0xd8]
mov edx, dword [esi + 0x18]
mov word [eax + ecx*2], 0x22
inc ecx
mov dword [esi + 0x160], edx
lea edx, [esi + 0x160]
mov dword [esi + 0xd8], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x164], ecx
lea ecx, [esi + 0xd0]
mov word [esi + 0x168], 0
call fcn.004df550
mov edx, dword [esi + 0xd8]
cmp edx, dword [esi + 0xd4]
jne 0x4eee10
lea ecx, [esi + 0xd0]
call fcn.004df690
mov edx, dword [esi + 0xd8]
mov eax, dword [esi + 0xd0]
mov edi, dword [esi + 0x80]
movzx ecx, byte [esi + 0x10]
mov word [eax + edx*2], 0x22
lea eax, [edi + edi*4]
mov edi, dword [esi + 0xc]
inc edx
movzx ecx, cl
mov dword [esi + 0xd8], edx
mov dword [esi + 0x1c], ecx
lea eax, [edi + eax*4]
mov dword [esi + 0x10], eax
cmp edi, dword [esi + 0x10]
je 0x4eeeba
nop word cs:[eax + eax]
nop
mov edx, dword [esi + 0xd8]
mov dword [esi + 0xc], edi
cmp edx, dword [esi + 0xd4]
jne 0x4eee75
lea ecx, [esi + 0xd0]
call fcn.004df690
mov edx, dword [esi + 0xd8]
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0xd0]
lea ecx, [esi + 0x98]
mov word [eax + edx*2], 0x20
inc edx
mov dword [esi + 0xd8], edx
lea edx, [esi + 0xd0]
push dword [esi + 0x1c]
push edi
call fcn.004f3580
add esp, 8
movzx eax, byte [esi + 0x98]
cmp al, 4
jne 0x4ef3e9
mov edi, dword [esi + 0xc]
add edi, 0x14
cmp edi, dword [esi + 0x10]
jne 0x4eee50
mov eax, dword [esi + 0xd0]
mov ebx, dword [esi + 0xd4]
mov edx, dword [esi + 0xd8]
test eax, eax
je 0x4ef435
mov cl, 1
mov edi, dword [esi + 0x14]
mov dword [esi + 0x150], 0
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x80], edi
mov dword [esi + 0x3c], ecx
cmp edx, ebx
mov dword [esi + 0x12c], eax
mov dword [esi + 0x130], ebx
mov dword [esi + 0x134], edx
jne 0x4eef2d
lea ecx, [esi + 0x12c]
mov byte [esi + 0x36], 1
mov dword [esi + 0x588], 4
call fcn.004df690
mov eax, dword [esi + 0x12c]
mov edx, dword [esi + 0x134]
mov ecx, dword [esi + 0x30]
mov word [eax + edx*2], 0
inc edx
mov eax, 0x400
mov dword [esi + 0x134], edx
mov edx, 0x608
cmp byte [ecx + 0x64], 0
cmove edx, eax
or edx, dword [ecx + 0x54]
cmp dword [esi + 0x13c], 0
mov dword [esi + 0x154], edx
je 0x4ef4cf
mov ebx, dword [esi + 0x148]
mov edx, dword [esi + 0x140]
mov edi, dword [esi + 0x144]
mov eax, 2
mov ecx, 0
mov dword [esi + 0x40], 2
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x10], 0
test ebx, ebx
mov dword [esi + 0x118], edx
mov dword [esi + 0x11c], edi
mov dword [esi + 0x120], ebx
jne 0x4eefec
mov dword [esi + 0xc], edx
lea ecx, [esi + 0x40]
xor edx, edx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], edi
mov byte [esi + 0x2f], 1
mov dword [esi + 0x588], 0xc
call fcn.004df690
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
mov word [eax + ecx*2], 0
inc ecx
mov dword [esi + 0x48], ecx
mov dword [esi + 0x38], eax
xor eax, eax
test edx, edx
mov dword [esi + 0x18], ecx
lea ecx, [esi + 0xd0]
mov dword [esi + 0x588], 0xd
mov dword [esi + 0x138], 0
setne al
cmove ebx, edx
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], 0
mov dword [esi + 0x168], edx
mov dword [esi + 0x16c], edi
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], 0
mov dword [esi + 0x178], edx
lea edx, [esi + 0x160]
mov dword [esi + 0x17c], edi
mov dword [esi + 0x180], ebx
call fcn.004ed190
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x4efb75
mov edx, dword [esi + 0xd8]
lea ecx, [edx + edx*8]
lea ecx, [ecx + ecx*2]
add ecx, edx
cmp byte [eax + ecx + 0xcc], 2
je 0x4efb75
shl edx, 4
mov edi, dword [eax + edx]
movzx ebx, byte [eax + edx + 0xc]
mov dword [esi + 0xc8], edi
mov edi, dword [eax + edx + 4]
mov edx, dword [eax + edx + 8]
mov byte [esi + 0x12b], bl
mov dword [esi + 0x1c], edx
mov edx, dword [eax + ecx + 0xb4]
mov dword [esi + 0x78], edi
mov edi, dword [eax + ecx + 0xc4]
mov dword [esi + 0x60], edx
mov edx, dword [eax + ecx + 0xb8]
mov dword [esi + 0xcc], edi
xor edi, edi
mov dword [esi + 0x5c], edx
mov edx, dword [eax + ecx + 0xbc]
mov dword [esi + 0x14c], edx
mov edx, dword [eax + ecx + 0xc0]
mov eax, dword [eax + ecx + 0xc8]
add eax, edx
mov dword [esi + 0x124], edx
mov dword [esi + 0xc], eax
jmp 0x4ef10b
xor edi, edi
test bx, bx
je 0x4ef46d
mov bx, 1
test di, di
jne 0x4ef100
cmp edx, dword [esi + 0xc]
je 0x4ef1a3
movzx ecx, byte [edx]
movzx eax, cl
test cl, cl
js 0x4ef12a
inc edx
jmp 0x4ef17a
movzx edi, byte [edx + 1]
and eax, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4ef172
mov dword [esi + 0x24], edx
movzx edx, byte [edx + 2]
shl edi, 6
and edx, 0x3f
or edx, edi
cmp cl, 0xf0
mov edi, edx
jb 0x4ef180
mov edx, dword [esi + 0x24]
and eax, 7
shl edi, 6
shl eax, 0x12
movzx ecx, byte [edx + 3]
add edx, 4
and ecx, 0x3f
or ecx, edi
or eax, ecx
cmp eax, 0xffff
jbe 0x4ef17a
jmp 0x4ef192
shl eax, 6
add edx, 2
or eax, edi
xor edi, edi
mov ebx, eax
jmp 0x4ef102
mov edx, dword [esi + 0x24]
shl eax, 0xc
or eax, edi
add edx, 3
cmp eax, 0xffff
jbe 0x4ef17a
and eax, 0x3ff
or eax, 0xdc00
mov edi, eax
jmp 0x4ef102
cmp dword [esi + 0xcc], 0
mov edx, dword [esi + 0x38]
je 0x4ef1c3
mov ecx, dword [esi + 0x124]
mov edi, edx
mov edx, 1
call fcn.004040f0
mov edx, edi
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x14c]
sub eax, ebx
cmp eax, edi
jae 0x4ef1f9
mov dword [esi + 0x588], 0x10
lea ecx, [esi + 0x40]
mov edx, ebx
push edi
call fcn.00583db0
add esp, 4
mov edx, dword [esi + 0x40]
mov ebx, dword [esi + 0x48]
mov edi, dword [esi + 0x14c]
lea eax, [edi + edi]
mov dword [esi + 0x38], edx
lea ecx, [edx + ebx*2]
push eax
push dword [esi + 0x60]
push ecx
call fcn.00570db0
add esp, 0xc
add ebx, edi
cmp dword [esi + 0x5c], 0
mov dword [esi + 0x48], ebx
je 0x4ef227
mov ecx, dword [esi + 0x60]
mov edx, 2
call fcn.004040f0
cmp ebx, dword [esi + 0x44]
jne 0x4ef24c
lea ecx, [esi + 0x40]
mov edx, ebx
mov byte [esi + 0x37], 1
mov dword [esi + 0x588], 0xe
call fcn.004df690
mov eax, dword [esi + 0x40]
mov ebx, dword [esi + 0x48]
jmp 0x4ef24f
mov eax, dword [esi + 0x38]
mov word [eax + ebx*2], 0x3d
mov eax, dword [esi + 0xc8]
and dword [esi + 0x124], 0xffffff00
inc ebx
xor edi, edi
mov dword [esi + 0x48], ebx
add dword [esi + 0x1c], eax
jmp 0x4ef27b
xor edi, edi
test dx, dx
je 0x4ef760
mov dx, 1
test di, di
jne 0x4ef270
cmp eax, dword [esi + 0x1c]
je 0x4ef31b
movzx ebx, byte [eax]
movzx ecx, bl
test bl, bl
js 0x4ef29a
inc eax
jmp 0x4ef312
movzx edi, byte [eax + 1]
and ecx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x4ef2e1
mov dword [esi + 0x10], eax
movzx eax, byte [eax + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp bl, 0xf0
mov dword [esi + 0xc], eax
jb 0x4ef2eb
mov ebx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
and ecx, 7
shl ecx, 0x12
movzx edi, byte [ebx + 3]
shl eax, 6
add ebx, 4
and edi, 0x3f
or edi, eax
mov eax, ebx
or ecx, edi
jmp 0x4ef2f7
shl ecx, 6
add eax, 2
or ecx, edi
jmp 0x4ef312
mov eax, dword [esi + 0x10]
shl ecx, 0xc
add ecx, dword [esi + 0xc]
add eax, 3
cmp ecx, 0xffff
jbe 0x4ef312
and ecx, 0x3ff
or ecx, 0xdc00
mov edi, ecx
jmp 0x4ef272
xor edi, edi
mov edx, ecx
jmp 0x4ef272
mov ecx, dword [esi + 0xc8]
mov eax, ecx
shr eax, 8
cmp byte [esi + 0x12b], 2
je 0x4f06f2
mov dword [esi + 0x98], ecx
mov ecx, dword [esi + 0x1c]
lea edx, [esi + 0x98]
mov dword [esi + 0x138], eax
mov dword [esi + 0x588], 0xf
mov dword [esi + 0x9c], ecx
lea ecx, [esi + 0x40]
mov word [esi + 0xa0], 0
call fcn.004df550
cmp dword [esi + 0x78], 0
je 0x4ef37f
mov ecx, dword [esi + 0xc8]
mov edx, 1
call fcn.004040f0
mov edi, dword [esi + 0x48]
cmp edi, dword [esi + 0x44]
jne 0x4ef3a2
lea ecx, [esi + 0x40]
mov edx, edi
mov byte [esi + 0x37], 0
mov dword [esi + 0x588], 0xe
call fcn.004df690
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x40]
lea ecx, [esi + 0xd0]
lea edx, [esi + 0x160]
mov word [eax + edi*2], 0
inc edi
mov dword [esi + 0x38], eax
mov dword [esi + 0x588], 0xd
mov dword [esi + 0x18], edi
mov dword [esi + 0x48], edi
mov edi, dword [esi + 0x124]
mov dword [esi + 0x10], edi
call fcn.004ed190
jmp 0x4ef05f
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x14]
jmp 0x4edf93
movzx ecx, byte [esi + 0x9f]
mov edi, dword [esi + 0x99]
movzx edx, word [esi + 0x9d]
movzx eax, al
mov ebx, edi
shl ecx, 0x10
or edx, ecx
shl ebx, 8
cmp dword [esi + 0xd4], 0
je 0x4ef42f
mov ecx, dword [esi + 0xd0]
mov dword [esi + 0xc], edx
mov edx, 2
mov dword [esi + 0x10], eax
call fcn.004040f0
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
shld edx, edi, 8
or ebx, eax
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x14]
mov dword [eax], ebx
mov dword [eax + 4], edx
mov dword [eax + 8], 2
mov eax, dword [ebp + 8]
xor ebx, ebx
test ecx, ecx
je 0x4ef460
mov ecx, dword [esi + 0x20]
mov edx, 2
call fcn.004040f0
mov eax, dword [ebp + 8]
test bl, bl
je 0x4edfa2
jmp 0x4ee0bb
cmp dword [esi + 0xcc], 0
je 0x4ef486
mov ecx, dword [esi + 0x124]
mov edx, 1
call fcn.004040f0
cmp dword [esi + 0x78], 0
mov edi, dword [esi + 0x60]
je 0x4ef49f
mov ecx, dword [esi + 0xc8]
mov edx, 1
call fcn.004040f0
or dword [esi + 0x10], 2
cmp dword [esi + 0x5c], 0
mov dword [esi + 0x18], 0x60b284
je 0x4efb2c
mov ecx, edi
mov edx, 2
call fcn.004040f0
mov dword [esi + 0x588], 0xc
jmp 0x4efb2c
mov edx, 2
xor edi, edi
mov dword [esi + 0x10], 0
cmp byte [ecx + 0x44], 2
mov dword [esi + 0x1c], edx
mov dword [esi + 0x38], edi
jne 0x4ef691
mov dword [esi + 0xc8], 0
mov dword [esi + 0x60], 2
xor eax, eax
xor ecx, ecx
jmp 0x4ef815
mov eax, dword [esi + 0x20]
movzx eax, word [eax + ebx*2 - 8]
lea ecx, [eax - 0x42]
cmp ecx, 0x21
ja 0x4eed61
mov edi, dword [esi + 0xcc]
add edi, dword [ecx*4 + 0x4f1584]
jmp edi
mov edx, dword [ecx + 0x38]
mov eax, dword [ecx + 0x40]
xor edi, edi
add eax, edx
mov dword [esi + 0x24], edx
mov dword [esi + 0xc], eax
jmp 0x4ef6ae
xor edi, edi
test bx, bx
je 0x4ef744
mov bx, 1
test di, di
jne 0x4ef6a3
cmp edx, dword [esi + 0xc]
je 0x4ef791
movzx ecx, byte [edx]
movzx eax, cl
test cl, cl
js 0x4ef6cd
inc edx
jmp 0x4ef73b
movzx edi, byte [edx + 1]
and eax, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4ef70e
mov dword [esi + 0x18], edx
movzx edx, byte [edx + 2]
shl edi, 6
and edx, 0x3f
or edx, edi
cmp cl, 0xf0
mov edi, edx
jb 0x4ef718
mov edx, dword [esi + 0x18]
and eax, 7
shl edi, 6
shl eax, 0x12
movzx ecx, byte [edx + 3]
add edx, 4
and ecx, 0x3f
or ecx, edi
or eax, ecx
jmp 0x4ef723
shl eax, 6
add edx, 2
or eax, edi
jmp 0x4ef73b
mov edx, dword [esi + 0x18]
shl eax, 0xc
or eax, edi
add edx, 3
cmp eax, 0xffff
jbe 0x4ef73b
and eax, 0x3ff
or eax, 0xdc00
mov edi, eax
jmp 0x4ef6a5
xor edi, edi
mov ebx, eax
jmp 0x4ef6a5
mov eax, dword [esi + 0x7c]
mov dword [eax + 4], 0x60b284
mov dword [eax], 2
mov dword [eax + 8], 2
jmp 0x4f04b9
cmp dword [esi + 0x78], 0
mov edi, 2
je 0x4efb0d
mov ecx, dword [esi + 0xc8]
mov edx, 1
mov dword [esi + 0x18], 0x60b284
call fcn.004040f0
mov eax, dword [esi + 0x138]
jmp 0x4efb1a
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0xc]
lea edx, [esi + 0x160]
mov dword [esi + 0x588], 5
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], ecx
lea ecx, [esi + 0xd0]
mov word [esi + 0x168], 0
call fcn.004f1690
mov eax, dword [esi + 0xd4]
mov edx, dword [esi + 0xd8]
cmp edx, eax
jne 0x4ef7f8
lea ecx, [esi + 0xd0]
mov dword [esi + 0x588], 0xb
call fcn.004df690
mov eax, dword [esi + 0xd4]
mov edx, dword [esi + 0xd8]
mov ebx, dword [esi + 0xd0]
mov ecx, eax
and ecx, 0xffffff00
mov word [ebx + edx*2], 0
mov dword [esi + 0xc8], ebx
mov dword [esi + 0x60], ebx
movzx eax, al
pxor xmm0, xmm0
or eax, ecx
movdqa xmmword [esi + 0x40], xmm0
mov dword [esi + 0xc], eax
push 0x64fc38
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x64fd54]
test eax, 0x7fffffff
je 0x4ef850
mov dword [esi + 0x588], 6
call fcn.00583ee0
xor al, 1
jmp 0x4ef852
xor eax, eax
mov ecx, dword [esi + 0x30]
movzx ebx, byte [0x64fc3c]
xor edx, edx
mov dword [esi + 0x6c], 0x64fc38
mov dword [esi + 0x18], eax
mov byte [esi + 0x70], al
mov eax, dword [ebp + 8]
mov dword [esi + 0x98], 0
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa8], 0
mov dword [esi + 0x588], 7
test bl, bl
lea edi, [ecx + 8]
mov byte [esi + 0x24], bl
setne dl
cmp dword [ecx], 6
mov dword [esi + 0x68], edx
mov edx, ecx
cmove edx, eax
cmp dword [ecx + 8], 6
cmove edi, eax
cmp dword [ecx + 0x10], 6
mov dword [esi + 0x5c], edi
lea edi, [ecx + 0x10]
lea ecx, [esi + 0x160]
cmove edi, eax
lea eax, [esi + 0x98]
mov dword [esi + 0xcc], edi
push eax
push 0xfffffffffffffff6
call fcn.004f3a00
add esp, 8
movzx eax, byte [esi + 0x160]
cmp al, 4
jne 0x4efa48
mov ecx, dword [esi + 0x164]
mov edx, dword [esi + 0x5c]
lea eax, [esi + 0xa0]
mov dword [esi + 0x588], 8
mov dword [esi + 0x78], ecx
lea ecx, [esi + 0x160]
push eax
push 0xfffffffffffffff5
call fcn.004f3a00
add esp, 8
movzx eax, byte [esi + 0x160]
cmp al, 4
jne 0x4efa7a
mov ecx, dword [esi + 0x164]
mov edx, dword [esi + 0xcc]
lea eax, [esi + 0xa8]
mov dword [esi + 0x588], 9
mov dword [esi + 0x5c], ecx
lea ecx, [esi + 0x160]
push eax
push 0xfffffffffffffff4
call fcn.004f3a00
add esp, 8
movzx eax, byte [esi + 0x160]
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x154]
cmp al, 4
jne 0x4efbe0
mov edi, dword [esi + 0x164]
cmp dword [esi + 0x78], 0
pxor xmm0, xmm0
mov dword [esi + 0x110], 0
movdqa xmmword [esi + 0x100], xmm0
movdqa xmmword [esi + 0xf0], xmm0
movdqa xmmword [esi + 0xe0], xmm0
movdqa xmmword [esi + 0xd0], xmm0
jne 0x4ef9b4
cmp dword [esi + 0x5c], 0
jne 0x4ef9b4
test edi, edi
je 0x4ef9d6
mov eax, dword [esi + 0x78]
mov ebx, dword [esi + 0x5c]
mov dword [esi + 0xfc], 0x100
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], ebx
mov dword [esi + 0x110], edi
mov eax, dword [edx + 0x60]
mov dword [esi + 0xcc], edi
test eax, eax
mov dword [esi + 0x124], eax
je 0x4f0176
add edx, 0x58
lea ecx, [esi + 0x118]
mov dword [esi + 0xd0], 0x48
mov dword [esi + 0x588], 0xa
call fcn.004f4290
cmp dword [esi + 0x118], 0
mov ebx, dword [esi + 0x11c]
mov edi, dword [esi + 0x120]
mov ecx, dword [esi + 0x154]
lea edx, [esi + 0x160]
je 0x4f0235
mov eax, dword [esi + 0x7c]
mov dword [eax], ebx
mov dword [eax + 4], edi
mov dword [eax + 8], 2
jmp 0x4f03ea
mov edx, dword [esi + 0x7c]
movzx ebx, word [esi + 0x161]
movzx ecx, byte [esi + 0x163]
mov edi, dword [esi + 0x164]
mov word [edx + 1], bx
mov ebx, dword [esi + 0x18]
mov byte [edx + 3], cl
mov byte [edx], al
mov dword [edx + 4], edi
mov dword [edx + 8], 2
jmp 0x4f040b
mov edx, dword [esi + 0x7c]
movzx ebx, word [esi + 0x161]
movzx ecx, byte [esi + 0x163]
mov edi, dword [esi + 0x164]
mov word [edx + 1], bx
mov ebx, dword [esi + 0x18]
mov byte [edx + 3], cl
mov byte [edx], al
mov dword [edx + 4], edi
mov dword [edx + 8], 2
jmp 0x4f0402
mov eax, dword [esi + 0x138]
mov dword [esi + 0x18], 0x60b284
shl eax, 8
mov dword [esi + 0x588], 0xc
or eax, edi
mov dword [esi + 0x10], eax
lea ecx, [esi + 0x160]
mov byte [esi + 0x2f], 0
mov dword [esi + 0x588], 0xc
call fcn.004f1610
cmp dword [esi + 0x44], 0
mov ebx, dword [esi + 0x18]
je 0x4efb5b
mov ecx, dword [esi + 0x40]
mov edx, 2
call fcn.004040f0
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x7c]
mov edx, dword [esi + 0x10]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], 2
jmp 0x4f04d2
lea ecx, [esi + 0x160]
mov byte [esi + 0x2f], 0
mov dword [esi + 0x588], 0xc
call fcn.004f1610
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x38]
cmp ebx, dword [esi + 0x44]
jne 0x4efbad
lea ecx, [esi + 0x40]
mov edx, ebx
mov byte [esi + 0x2f], 0
call fcn.004df690
mov edi, dword [esi + 0x40]
mov ebx, dword [esi + 0x48]
mov word [edi + ebx*2], 0
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x40]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 8]
test edx, edx
jne 0x4ef4dd
inc ebx
jmp 0x4efb5e
movzx ecx, byte [esi + 0x163]
mov edx, dword [esi + 0x7c]
movzx ebx, word [esi + 0x161]
mov edi, dword [esi + 0x164]
mov byte [edx + 3], cl
mov word [edx + 1], bx
mov byte [edx], al
mov dword [edx + 4], edi
mov dword [edx + 8], 2
jmp 0x4f03f6
mov ecx, dword [esi + 0x164]
mov ebx, dword [esi + 0x168]
jmp 0x4eeac2
mov dword [esi + 0xd0], 0x44
lea edx, [esi + 0xd0]
jmp 0x4f028a
mov ecx, dword [esi + 0x164]
mov ebx, dword [esi + 0x168]
cmp dword [esi + 0x80], 0
mov dword [esi + 0x20], eax
mov dword [esi + 0x14], ecx
je 0x4eeac8
mov ecx, dword [esi + 0x24]
mov edx, 1
call fcn.004040f0
jmp 0x4eeac8
movaps xmm1, xmmword [esi + 0xf0]
mov eax, dword [esi + 0x110]
movdqa xmm0, xmmword [esi + 0x100]
movaps xmm2, xmmword [esi + 0xd0]
or ecx, 0x80000
mov dword [esi + 0x30], edi
movaps xmmword [esi + 0x180], xmm1
movaps xmm1, xmmword [esi + 0xe0]
mov dword [esi + 0x1a0], eax
movdqa xmmword [esi + 0x190], xmm0
movaps xmmword [esi + 0x160], xmm2
movaps xmmword [esi + 0x170], xmm1
mov dword [esi + 0x1a4], ebx
mov edi, dword [esi + 0x12c]
lea eax, [esi + 0x40]
push eax
push edx
push dword [esi + 0xc8]
push dword [esi + 0x38]
push ecx
push 1
push 0
push 0
mov dword [esi + 0x38], edi
push edi
push dword [esi + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x4f03ad
mov eax, dword [esi + 0x7c]
movsd xmm1, qword [esi + 0xa0]
movq xmm0, qword [esi + 0xa8]
movsd xmm2, qword [esi + 0x98]
cmp dword [esi + 0x124], 0
mov edx, dword [esi + 0x30]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esi + 0x40]
movq qword [eax + 0x18], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax], xmm1
je 0x4f030a
mov ecx, ebx
call fcn.004f4590
mov dword [esi + 0x588], 6
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esi + 0xcc]
call edi
push dword [esi + 0x5c]
call edi
push dword [esi + 0x78]
call edi
lea ecx, [esi + 0x68]
mov dword [esi + 0x588], 6
call fcn.004f45b0
cmp dword [esi + 0xc], 0
je 0x4f0347
mov ecx, dword [esi + 0x60]
mov edx, 2
call fcn.004040f0
cmp dword [esi + 0x10], 0
je 0x4f035a
mov ecx, dword [esi + 0x1c]
mov edx, 2
call fcn.004040f0
cmp dword [esi + 0x130], 0
je 0x4f0370
mov ecx, dword [esi + 0x38]
mov edx, 2
call fcn.004040f0
cmp dword [esi + 0x80], 0
je 0x4f0386
mov ecx, dword [esi + 0x3c]
mov edx, 2
call fcn.004040f0
cmp dword [esi + 0x14], 0
mov ecx, dword [esi + 0x28]
sete al
or cl, al
cmp cl, 1
je 0x4ee0b8
mov ecx, dword [esi + 0x20]
mov edx, 2
call fcn.004040f0
jmp 0x4ee0b8
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, word [esi + 0x118]
mov edx, dword [esi + 0x7c]
cmp dword [esi + 0x124], 0
mov word [edx + 1], cx
mov ch, byte [esi + 0x11a]
mov byte [edx + 3], ch
mov byte [edx], 0
mov dword [edx + 4], eax
mov dword [edx + 8], 2
mov edx, dword [esi + 0x30]
je 0x4f03ea
mov ecx, ebx
call fcn.004f4590
push dword [esi + 0xcc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [esi + 0x18]
push dword [esi + 0x5c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esi + 0x78]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x98], 0
je 0x4f0420
push dword [esi + 0x9c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0xa0], 0
je 0x4f0435
push dword [esi + 0xa4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0xa8], 0
je 0x4f044a
push dword [esi + 0xac]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esi + 0x24], 0
je 0x4f0471
test bl, bl
jne 0x4f049b
mov eax, dword [0x64fd54]
test eax, 0x7fffffff
je 0x4f049b
mov dword [esi + 0x588], 6
call fcn.00583ee0
jmp 0x4f0490
test bl, bl
jne 0x4f049b
mov eax, dword [0x64fd54]
test eax, 0x7fffffff
je 0x4f049b
mov dword [esi + 0x588], 6
call fcn.00583ee0
test al, al
jne 0x4f049b
mov byte [0x64fc3c], 1
push 0x64fc38
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp dword [esi + 0xc], 0
je 0x4f04b9
mov ecx, dword [esi + 0x60]
mov edx, 2
call fcn.004040f0
cmp dword [esi + 0x10], 0
mov eax, dword [ebp + 8]
je 0x4f04d2
mov ecx, dword [esi + 0x1c]
mov edx, 2
call fcn.004040f0
mov eax, dword [ebp + 8]
cmp dword [esi + 0x130], 0
je 0x4f04ee
mov ecx, dword [esi + 0x12c]
mov edx, 2
call fcn.004040f0
mov eax, dword [ebp + 8]
cmp dword [esi + 0x80], 0
je 0x4f0507
mov ecx, dword [esi + 0x3c]
mov edx, 2
call fcn.004040f0
mov eax, dword [ebp + 8]
cmp byte [esi + 0x28], 0
mov ecx, dword [esi + 0x14]
mov bl, 1
jne 0x4ee0bb
jmp 0x4ef44c
mov dword [esi + 0x588], 0
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x63b8f4
call fcn.00580f20
add esp, 4
jmp 0x4f0ac4
mov edx, dword [esi + 0x78]
movzx edi, cl
mov dword [esi + 0x18], edx
jmp 0x4efb1a
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esi + 0x98]
lea ecx, [esi + 0x40]
mov dword [esi + 0xd0], 0x60b224
mov dword [esi + 0xd4], 1
mov dword [esi + 0xe0], 0
mov byte [esi + 0x98], 0
mov dword [esi + 0x9c], eax
mov dword [esi + 0x588], 0x24
mov dword [esi + 0x40], edx
mov dword [esi + 0xd8], ecx
lea ecx, [esi + 0xd0]
mov edx, 0x60b254
mov dword [esi + 0x44], fcn.004e54a0
mov dword [esi + 0xdc], 1
call fcn.00580da0
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x26
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x63b3d4
call fcn.00580f20
add esp, 4
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x2a
call fcn.00412860
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x2a
call fcn.00412860
jmp 0x4f0ac4
mov ecx, 1
mov byte [esi + 0x67], 1
call fcn.00580af0
jmp 0x4f0ac4
mov ecx, 1
mov dword [esi + 0x588], 0x26
call fcn.00580af0
jmp 0x4f0ac4
mov byte [esi + 0x67], 1
mov dword [esi + 0x588], 0x28
call fcn.00412860
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x26
call fcn.00412860
jmp 0x4f0ac4
mov edx, dword [esi + 0x38]
mov ecx, 2
mov dword [esi + 0x588], 0x2a
call fcn.00580af0
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x2b
mov ecx, 1
xor edx, edx
push 0x60b0a8
call fcn.00580dd0
add esp, 4
jmp 0x4f0ac4
mov edx, dword [esi + 0x10]
mov ecx, eax
push 0x60b088
call fcn.00580eb0
add esp, 4
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x2c
mov ecx, edi
push 0x60b098
call fcn.00580dd0
add esp, 4
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x29
mov ecx, str.assertion_failed:_self.height___0
mov edx, 0x21
push 0x6341d0
call fcn.00580f20
add esp, 4
jmp 0x4f0ac4
mov ecx, 1
mov edx, 4
mov byte [esi + 0xb], 1
mov dword [esi + 0x588], 2
call fcn.00580af0
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x1b
mov ecx, str.internal_error:_entered_unreachable_code
mov edx, 0x28
push 0x60b7f0
call fcn.00580f20
add esp, 4
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x19
mov ecx, str.internal_error:_entered_unreachable_code
mov edx, 0x28
push 0x60b7f0
call fcn.00580f20
add esp, 4
jmp 0x4f0ac4
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esi + 0x98]
lea ecx, [esi + 0x40]
mov dword [esi + str.failure_getting_env_string_from_OS:], 0x60b0dc
mov dword [esi + 0x164], 1
mov dword [esi + 0x170], 0
mov byte [esi + 0x98], 0
mov dword [esi + 0x9c], eax
mov dword [esi + 0x588], 0x27
mov dword [esi + 0x40], edx
mov dword [esi + 0x168], ecx
lea ecx, [esi + 0x160]
mov edx, 0x60b0e4
mov dword [esi + 0x44], fcn.004e54a0
mov dword [esi + 0x16c], 1
call fcn.00580da0
jmp 0x4f0ac4
mov byte [esi + 0xb], 1
mov dword [esi + 0x588], 2
call fcn.00412860
jmp 0x4f0ac4
mov ecx, 1
mov edx, ebx
mov byte [esi + 0xb], 1
mov dword [esi + 0x588], 2
call fcn.00580af0
jmp 0x4f0ac4
mov ecx, edi
push 0x60b7e0
call fcn.00580eb0
add esp, 4
jmp 0x4f0ac4
mov dword [esi + 0x588], 0x22
push 0x609578
call fcn.00580dd0
add esp, 4
jmp 0x4f0ac4
mov ecx, edi
push 0x60b7e0
call fcn.00580eb0
add esp, 4
jmp 0x4f0ac4
ud2