Function at 0x4364c0
Capabilities:
Check os version
Create process on windows
Encode data using base64
Get common file path
Query environment variable

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 0x4364dc
pop eax
mov dword [esi + 0x57c], esp
mov dword [esi + 0x588], 0xffffffff
mov dword [esi + 0x584], 0x446a50
mov dword [esi + 0x88], ecx
mov dword [esi + 0x34], edx
mov dword [esi + 0x5c], 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 0x43654b
test ecx, ecx
jne 0x43654b
mov dword [esi + 0x134], 0
mov dword [esi + 0x70], 0
mov edi, dword [edx + 0x20]
test edi, edi
jne 0x43706b
jmp 0x4370d2
test al, al
mov dword [esi + 0x60], 0
mov dword [esi + 0x68], 0
jne 0x43679d
mov dword [esi + 0x14], ecx
call dword [sym.imp.kernel32.dll_GetEnvironmentStringsW]
test eax, eax
je 0x439ba3
mov edi, eax
mov dword [esi + 0x3c], eax
nop word [eax + eax]
cmp word [edi], 0
je 0x43678e
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 0x4365a0
lea edi, [ecx + edi*2]
cmp ebx, 1
mov dword [esi + 0xc], ecx
je 0x436580
test ebx, ebx
je 0x439ab7
xor edx, edx
nop word cs:[eax + eax]
nop
mov ecx, dword [esi + 0xc]
cmp word [ecx + edx*2 + 2], 0x3d
je 0x4365f0
inc edx
add eax, 0xfffffffe
jne 0x4365d0
jmp 0x436580
lea eax, [edx + 1]
cmp edx, ebx
mov dword [esi + 0x10], edi
mov dword [esi + 8], ebx
mov dword [esi + 0x18], edx
mov dword [esi + 0x588], 0x2b
jae 0x439ada
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0x90]
push eax
call fcn.0042c500
add esp, 4
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 8]
add edi, 2
mov eax, edx
sub eax, edi
jb 0x439af1
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x588], 0x2c
lea edx, [ecx + edi*2]
lea ecx, [esi + 0x160]
push eax
call fcn.0042c500
add esp, 4
movq xmm0, qword [esi + 0x98]
mov edi, dword [esi + 0x90]
mov eax, dword [esi + 0x94]
lea edx, [esi + 0x90]
lea ecx, [esi + 0x40]
movdqa xmmword [esi + 0x560], xmm0
cmp byte [esi + 0x564], 2
je 0x43678e
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x160]
mov ebx, dword [esi + 0x168]
movdqa xmmword [esi + 0x70], xmm0
mov dword [esi + 0x90], edi
mov dword [esi + 0x588], 0x2e
mov dword [esi + 0x20], edi
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x164]
mov dword [esi + 0x24], ebx
mov dword [esi + 8], eax
mov eax, dword [esi + 0x16c]
mov dword [esi + 0x1c], eax
movd eax, xmm0
add eax, edi
mov dword [esi + 0x94], eax
mov word [esi + 0x98], 0
call fcn.0043aa10
mov eax, dword [esi + 0x20]
movaps xmm0, xmmword [esi + 0x70]
mov byte [esi + 0x8d], 0
mov dword [esi + 0x588], 0x2d
lea ecx, [esi + 0x40]
lea edx, [esi + 0x60]
mov dword [esi + 0x16c], eax
mov eax, dword [esi + 0x18]
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 + 0x90], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x98], eax
lea eax, [esi + 0x90]
push eax
lea eax, [esi + 0x160]
push eax
call fcn.0043ac50
add esp, 8
cmp byte [esi + 0x4c], 2
mov edi, dword [esi + 0x10]
je 0x436580
cmp dword [esi + 0x44], 0
je 0x436580
push dword [esi + 0x40]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x436580
push dword [esi + 0x3c]
call dword [sym.imp.kernel32.dll_FreeEnvironmentStringsW]
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x14]
mov eax, dword [edx + 0x28]
mov ebx, dword [edx + 0x2c]
xor edx, edx
mov dword [esi + 0x10], 0
test eax, eax
mov dword [esi + 0xc], eax
setne dl
cmove ecx, eax
jmp 0x4367cd
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 8]
mov dword [esi + 0xc], 0
test ecx, ecx
je 0x436ea0
mov edi, dword [esi + 0x10]
test edx, edx
je 0x436800
test edi, edi
jne 0x436800
mov edx, 1
test ebx, ebx
je 0x436947
mov edi, dword [esi + 0xc]
mov edi, dword [edi + 0x1ec]
dec ebx
jne 0x4367f0
jmp 0x43694a
test edx, edx
je 0x4399e5
movzx eax, word [edi + 0x1ea]
cmp ebx, eax
jb 0x436843
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x4396ab
movzx ebx, word [edi + 0x1e8]
inc dword [esi + 0xc]
mov edi, eax
cmp bx, word [eax + 0x1ea]
jae 0x436820
mov dword [esi + 8], edx
mov edx, dword [esi + 0xc]
test edx, edx
je 0x436870
mov eax, dword [edi + ebx*4 + 0x1f0]
mov dword [esi + 0x18], 0
dec edx
je 0x436869
nop
mov eax, dword [eax + 0x1ec]
dec edx
jne 0x436860
mov dword [esi + 0x10], eax
jmp 0x436879
lea eax, [ebx + 1]
mov dword [esi + 0x10], edi
mov dword [esi + 0x18], eax
lea eax, [ebx + ebx*8]
dec ecx
mov edx, dword [esi + 8]
lea eax, [eax + eax*2]
add eax, ebx
shl ebx, 4
cmp byte [edi + ebx + 0xc], 2
lea eax, [edi + eax + 0xb4]
jne 0x4368f0
mov edi, dword [esi + 0x60]
mov ebx, dword [esi + 0x18]
mov dword [esi + 0xc], 0
test edi, edi
je 0x4367cd
mov dword [esi + 0x14], ecx
mov ecx, eax
mov edx, edi
mov eax, dword [eax]
mov ebx, dword [esi + 0x64]
mov edi, dword [ecx + 8]
mov dword [esi + 0x588], 0x26
lea ecx, [esi + 0x40]
mov dword [esi + 0x70], edx
push edi
push eax
mov dword [esi + 0x20], ebx
push ebx
call fcn.0043c040
add esp, 0xc
cmp dword [esi + 0x40], 0
je 0x436b25
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0x18]
jmp 0x4367cd
mov edx, dword [eax + 0xc]
mov dword [esi + 0x20], eax
mov eax, dword [eax + 0x14]
mov dword [esi + 0x14], ecx
test eax, eax
mov dword [esi + 0xc], eax
je 0x436967
js 0x439a73
movzx eax, byte [0xdec9c0]
mov eax, dword [0xdeca40]
mov dword [esi + 0x70], edx
test eax, eax
jne 0x43692f
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x439a2b
mov dword [0xdeca40], eax
push dword [esi + 0xc]
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [esi + 0x70]
test eax, eax
jne 0x43696c
jmp 0x439a2b
mov edi, dword [esi + 0xc]
xor ebx, ebx
mov dword [esi + 0xc], 0
movzx eax, word [edi + 0x1ea]
cmp ebx, eax
jae 0x436820
jmp 0x436843
mov eax, 1
push dword [esi + 0xc]
push edx
mov dword [esi + 0x1c], eax
push eax
call fcn.00449190
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 + 0x70], dl
test ecx, ecx
mov dword [esi + 0x24], ecx
je 0x4369f7
cmp ecx, 0x3fffffff
ja 0x439a47
add ecx, ecx
test ecx, ecx
js 0x439a87
je 0x4369f7
movzx eax, byte [0xdec9c0]
mov eax, dword [0xdeca40]
mov dword [esi + 0x2c], ecx
test eax, eax
jne 0x4369df
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x439a9b
mov dword [0xdeca40], eax
mov ecx, dword [esi + 0x2c]
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov dword [esi + 0x20], eax
je 0x439a9b
mov eax, dword [esi + 0x2c]
add edi, ebx
push eax
push dword [esi + 0x3c]
mov ebx, dword [esi + 0x20]
push ebx
call fcn.00449190
add esp, 0xc
mov eax, dword [esi + 0x1c]
movzx edx, byte [esi + 0x70]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x16c], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov byte [esi + 0x178], dl
mov dword [esi + 0x160], ebx
mov dword [esi + 0x164], ecx
mov dword [esi + 0x168], ecx
mov ecx, dword [edi + 8]
mov edx, dword [edi]
test ecx, ecx
mov dword [esi + 0x70], ecx
je 0x436a99
js 0x439a5b
movzx eax, byte [0xdec9c0]
mov eax, dword [0xdeca40]
mov ebx, edx
test eax, eax
jne 0x436a7a
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x439a0b
mov dword [0xdeca40], eax
mov ecx, dword [esi + 0x70]
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov edx, ebx
mov dword [esi + 0x588], 0x28
jne 0x436a9e
jmp 0x439a0b
mov eax, 1
mov ebx, dword [esi + 0x70]
mov dword [esi + 0x3c], eax
push ebx
push edx
push eax
call fcn.00449190
add esp, 0xc
movzx eax, byte [edi + 0xc]
mov ecx, dword [esi + 0x3c]
mov byte [esi + 0x57], 0
mov dword [esi + 0x588], 0x28
lea edx, [esi + 0x60]
mov dword [esi + 0x90], ecx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x98], ebx
mov byte [esi + 0x9c], al
lea eax, [esi + 0x90]
lea ecx, [esi + 0x40]
push eax
lea eax, [esi + 0x160]
push eax
call fcn.0043ac50
add esp, 8
cmp byte [esi + 0x4c], 2
mov ebx, dword [esi + 0x18]
je 0x4367c0
cmp dword [esi + 0x44], 0
je 0x4367c0
push dword [esi + 0x40]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4367c0
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x4c]
mov byte [esi + 0x124], 0
test ecx, ecx
je 0x436c15
nop dword [eax]
mov eax, dword [eax + edx*4 + 0x1ec]
dec ecx
je 0x436b5b
movzx edx, word [eax + 0x1ea]
mov eax, dword [eax + edx*4 + 0x1ec]
dec ecx
jne 0x436b4a
movzx ecx, word [eax + 0x1ea]
mov dword [esi + 0x110], eax
lea eax, [esi + 0x124]
mov dword [esi + 0x114], 0
mov dword [esi + 0x588], 0x26
lea edx, [esi + 0x110]
dec ecx
mov dword [esi + 0x118], ecx
lea ecx, [esi + 0x160]
push eax
call fcn.0043c1e0
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]
movsd qword [esi + 0xa8], xmm2
movsd qword [esi + 0xa0], xmm1
movsd xmm2, qword [esi + 0x160]
movsd xmm1, qword [esi + 0x168]
mov dword [esi + 0xb8], eax
movq qword [esi + 0xb0], xmm0
mov eax, dword [esi + 0x194]
movsd qword [esi + 0x98], xmm1
movsd qword [esi + 0x90], xmm2
movzx ecx, word [edx + 0x1ea]
cmp eax, ecx
jae 0x436c4b
mov ecx, edx
jmp 0x436c83
mov dword [esi + 0x90], eax
lea eax, [esi + 0x124]
mov dword [esi + 0x94], 0
mov dword [esi + 0x98], edx
lea ecx, [esi + 0x160]
lea edx, [esi + 0x90]
push eax
call fcn.0043c1e0
add esp, 4
jmp 0x436d9e
mov edi, dword [esi + 0x190]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, dword [edx + 0xb0]
test ecx, ecx
je 0x436c7f
movzx eax, word [edx + 0x1e8]
inc edi
mov edx, ecx
cmp ax, word [ecx + 0x1ea]
jae 0x436c60
jmp 0x436c83
xor ecx, ecx
mov eax, edi
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
shl eax, 4
mov edi, dword [ecx + edx + 0xcc]
mov dword [esi + 0xd8], edi
mov edi, dword [esi + 0xa8]
movsd xmm0, qword [ecx + edx + 0xc4]
movsd qword [esi + 0xd0], xmm0
movsd xmm0, qword [ecx + edx + 0xb4]
movsd xmm1, qword [ecx + edx + 0xbc]
movsd qword [esi + 0xc8], xmm1
movsd qword [esi + 0xc0], xmm0
mov dword [ecx + edx + 0xcc], edi
lea edi, [esi + 0xac]
movsd xmm0, qword [esi + 0xa0]
movsd qword [ecx + edx + 0xc4], xmm0
movsd xmm0, qword [esi + 0x90]
movsd xmm1, qword [esi + 0x98]
movsd qword [ecx + edx + 0xbc], xmm1
movsd qword [ecx + edx + 0xb4], xmm0
lea edx, [esi + 0xdc]
movsd xmm0, qword [ecx + eax]
movsd xmm1, qword [ecx + eax + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [ecx + eax], xmm0
movsd qword [ecx + eax + 8], xmm1
movsd xmm2, qword [esi + 0xd8]
movsd xmm1, qword [esi + 0xd0]
mov eax, dword [esi + 0xe8]
movq xmm0, qword [esi + 0xe0]
movsd qword [esi + 0x178], xmm2
movsd qword [esi + 0x170], xmm1
movsd xmm2, qword [esi + 0xc0]
movsd xmm1, qword [esi + 0xc8]
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 + 0x68]
cmp byte [esi + 0x124], 0
mov ebx, dword [esi + 0x178]
mov edi, dword [esi + 0x188]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x170]
mov dword [esi + 0x58], edx
mov edx, dword [esi + 0x17c]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x180]
mov dword [esi + 0x38], edx
mov dword [esi + 0x3c], ecx
je 0x436e20
mov edx, dword [esi + 0x20]
test edx, edx
je 0x439b0f
mov ecx, dword [esi + 0x70]
dec edx
mov eax, dword [ecx + 0x1ec]
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], edx
mov dword [eax + 0xb0], 0
push ecx
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp bl, 2
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0x18]
je 0x4367cd
cmp dword [esi + 0x24], 0
je 0x436e4f
push dword [esi + 0x58]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x14]
cmp dword [esi + 0x1c], 0
je 0x436e6c
push dword [esi + 0x2c]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x14]
mov eax, edi
movzx eax, al
cmp eax, 2
je 0x4367cd
cmp dword [esi + 0x3c], 0
je 0x4367cd
push dword [esi + 0x38]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x14]
jmp 0x4367cd
mov eax, dword [esi + 0x68]
movq xmm0, qword [esi + 0x60]
mov dword [esi + 0x140], eax
movq qword [esi + 0x138], xmm0
mov dword [esi + 0x134], 1
movzx eax, byte [0xdec9c0]
mov eax, dword [0xdeca40]
test eax, eax
jne 0x436ee3
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x439b35
mov dword [0xdeca40], eax
push 4
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x439b35
mov ecx, eax
mov dword [eax], 0x48544150
mov dword [esi + 0xc0], eax
lea edx, [esi + 0xc0]
mov dword [esi + 0x588], 0x25
mov dword [esi + 0x20], eax
add ecx, 4
mov dword [esi + 0xc4], ecx
lea ecx, [esi + 0x90]
mov word [esi + 0xc8], 0
call fcn.0043aa10
mov ecx, dword [esi + 0x20]
movq xmm0, qword [esi + 0x90]
mov eax, dword [esi + 0x98]
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 + 0x18], eax
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0x160]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x138]
test eax, eax
je 0x43702c
mov ecx, dword [esi + 0x13c]
mov dword [esi + 0x70], 0
mov dword [esi + 0x14], ecx
movzx edx, word [eax + 0x1ea]
lea ecx, [eax + 0xb4]
mov dword [esi + 0x10], eax
mov edi, 0xffffffff
lea eax, [edx + edx*8]
mov dword [esi + 0x1c], edx
lea ebx, [eax + eax*2]
add ebx, edx
nop
test ebx, ebx
je 0x436ff0
lea eax, [ecx + 0x1c]
mov dword [esi + 0xc], eax
push 1
push dword [ecx + 8]
push dword [ecx]
push dword [esi + 0x18]
push dword [esi + 8]
call dword [sym.imp.kernel32.dll_CompareStringOrdinal]
mov ecx, dword [esi + 0xc]
add ebx, 0xffffffe4
inc edi
cmp eax, 3
je 0x436fc0
cmp eax, 1
jne 0x43700a
jmp 0x436ff3
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
sub ecx, 1
jb 0x437035
mov eax, dword [eax + edi*4 + 0x1ec]
mov dword [esi + 0x14], ecx
jmp 0x436f9e
mov ecx, dword [esi + 0x10]
cmp eax, 2
jne 0x439973
test ecx, ecx
je 0x437035
shl edi, 4
mov eax, dword [ecx + edi]
mov ecx, dword [ecx + edi + 8]
mov dword [esi + 0x70], eax
mov dword [esi + 0x1c], ecx
jmp 0x437035
mov dword [esi + 0x70], 0
jmp 0x437038
mov ecx, dword [esi + 0x20]
push ecx
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x164], 0
je 0x437061
push dword [esi + 8]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esi + 0x34]
mov edi, dword [edx + 0x20]
test edi, edi
je 0x4370d2
mov edx, dword [edx + 0x18]
mov eax, 0x43c740
cmp edi, 4
jb 0x4370a5
mov eax, dword [edx]
xor ecx, ecx
mov dword [esi + 0x588], 2
bswap eax
cmp eax, 0x5c5c3f5c
setb cl
cmp eax, 0x5c5c3f5d
mov eax, 0x43c740
adc ecx, 0xffffffff
mov ecx, 0x43c730
cmove eax, ecx
movzx ecx, byte [edi + edx - 1]
mov dword [esi + 0x10], edx
mov dword [esi + 0xc], edi
mov byte [esi + 7], 1
mov dword [esi + 0x588], 2
mov dword [esi + 8], ecx
push ecx
call eax
add esp, 4
mov ebx, dword [esi + 0xc]
test al, al
je 0x43715f
mov byte [esi + 0x64], 2
mov dword [esi + 0x68], 0xde2a50
mov ebx, dword [esi + 0x64]
mov edx, dword [esi + 0x68]
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x88]
mov dword [ecx], ebx
mov dword [ecx + 4], edx
mov dword [ecx + 8], 2
cmp dword [esi + 0x134], 0
je 0x437211
mov ecx, dword [esi + 0x138]
test ecx, ecx
je 0x4371e3
mov edx, dword [esi + 0x13c]
mov eax, dword [esi + 0x140]
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 0x4371e7
mov edi, dword [esi + 0x10]
xor eax, eax
cmp ebx, 3
mov ecx, 0
jbe 0x437235
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 0x437233
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 0x437233
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 0x437233
mov edx, dword [esi + 8]
mov ecx, edx
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, dl
cmp cl, 0x65
sete cl
jmp 0x437235
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.0043a980
mov eax, dword [ebp + 8]
cmp dword [eax], 4
jb 0x43721f
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 + 0x18], edx
nop dword [eax + eax]
cmp ebx, eax
je 0x4372bd
movzx edx, byte [edi + eax]
cmp edx, 0x2f
je 0x437253
inc eax
cmp edx, 0x5c
jne 0x437240
test cl, cl
je 0x437391
mov byte [esi + 7], 1
mov dword [esi + 0x588], 2
lea ecx, [esi + 0x160]
mov edx, edi
push ebx
call fcn.0042a270
add esp, 4
mov edx, dword [esi + 0x160]
mov eax, dword [esi + 0x164]
mov ecx, dword [esi + 0x168]
test edx, edx
je 0x437494
mov dword [esi + 0x160], edx
mov dword [esi + 0x168], ecx
lea ecx, [esi + 0x60]
lea edx, [esi + 0x160]
mov dword [esi + 0x164], eax
mov byte [esi + 7], 1
call fcn.0043c760
jmp 0x437e85
mov eax, edi
xor edi, edi
jmp 0x4372db
xor edi, edi
test dx, dx
je 0x437481
mov dx, 1
test di, di
jne 0x4372d0
cmp eax, dword [esi + 0x18]
je 0x4374df
movzx ebx, byte [eax]
movzx ecx, bl
test bl, bl
js 0x4372fd
mov ebx, dword [esi + 0xc]
inc eax
jmp 0x43735e
movzx edi, byte [eax + 1]
and ecx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x437353
mov dword [esi + 8], eax
movzx eax, byte [eax + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp bl, 0xf0
mov dword [esi + 0x14], eax
jb 0x437367
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0xc]
and ecx, 7
shl ecx, 0x12
movzx edi, byte [eax + 3]
add eax, 4
mov dword [esi + 8], eax
mov eax, dword [esi + 0x14]
and edi, 0x3f
shl eax, 6
or edi, eax
mov eax, dword [esi + 8]
or ecx, edi
cmp ecx, 0xffff
jbe 0x43735e
jmp 0x43737e
mov ebx, dword [esi + 0xc]
shl ecx, 6
add eax, 2
or ecx, edi
xor edi, edi
mov edx, ecx
jmp 0x4372d2
mov eax, dword [esi + 8]
shl ecx, 0xc
mov ebx, dword [esi + 0xc]
add ecx, dword [esi + 0x14]
add eax, 3
cmp ecx, 0xffff
jbe 0x43735e
and ecx, 0x3ff
or ecx, 0xdc00
mov edi, ecx
jmp 0x4372d2
test ebx, ebx
js 0x439c34
movzx eax, byte [0xdec9c0]
mov eax, dword [0xdeca40]
test eax, eax
jne 0x4373bc
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x439c15
mov dword [0xdeca40], eax
push ebx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x439c15
push ebx
push edi
push eax
mov edi, eax
call fcn.00449190
add esp, 0xc
mov dword [esi + 0x160], edi
mov dword [esi + 0x164], ebx
mov dword [esi + 0x168], ebx
mov dword [esi + 8], edi
mov byte [esi + 0x16c], 0
mov dword [esi + 0x588], 0x21
lea ecx, [esi + 0x160]
mov edx, str..exeprogram_not_found
push 4
call fcn.0042ff30
add esp, 4
mov edx, dword [esi + 0x160]
mov eax, dword [esi + 0x164]
mov edi, dword [esi + 0x168]
mov byte [esi + 0x8e], 1
mov dword [esi + 0x588], 0x20
lea ecx, [esi + 0xc0]
mov dword [esi + 8], eax
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], edx
mov dword [esi + 0xc], edx
mov dword [esi + 0x14], edi
push edi
call fcn.0043c830
add esp, 4
cmp dword [esi + 0xc0], 0
je 0x4374a6
mov eax, dword [esi + 0xc8]
movq xmm0, qword [esi + 0xc0]
mov dword [esi + 0x68], eax
movq qword [esi + 0x60], xmm0
jmp 0x437e6d
mov dword [esi + 0x64], 2
mov dword [esi + 0x68], 0xde2a00
jmp 0x4370dd
mov dword [esi + 0x64], eax
mov dword [esi + 0x68], ecx
mov dword [esi + 0x60], 0
jmp 0x437e85
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
mov dword [esi + 0x588], 0x22
call fcn.00435a00
test eax, eax
je 0x437e09
cmp edx, 2
jne 0x437504
movzx ecx, word [eax]
cmp ecx, 0x2e2e
jne 0x437504
mov edi, 2
xor ebx, ebx
jmp 0x437de0
mov edx, dword [esi + 0x10]
cmp ebx, 7
ja 0x43753b
mov ecx, dword [esi + 0x1c]
xor eax, eax
nop dword [eax]
cmp byte [edx + eax], 0x2e
je 0x43755d
inc eax
cmp ebx, eax
jne 0x4374f0
mov dword [esi + 0x24], 0
jmp 0x437564
mov edi, edx
nop word cs:[eax + eax]
test edi, edi
je 0x437554
mov ecx, edi
dec edi
cmp byte [eax + ecx - 1], 0x2e
jne 0x437510
mov ebx, edx
sub ebx, ecx
jb 0x439c86
test edi, edi
je 0x437ddc
mov edx, ebx
mov ebx, eax
add ebx, ecx
jmp 0x437de0
mov ecx, 0x2e
push ebx
call fcn.00418d80
add esp, 4
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x1c]
jmp 0x437567
mov ebx, eax
xor eax, eax
jmp 0x437de0
mov dword [esi + 0x24], 1
mov eax, dword [esi + 0x70]
test eax, eax
mov dword [esi + 0x588], 2
je 0x4376d5
add ecx, eax
mov dword [esi + 0x90], eax
lea edx, [esi + 0x90]
mov byte [esi + 7], 1
mov dword [esi + 0x94], ecx
lea ecx, [esi + 0x160]
mov word [esi + 0x98], 0
mov byte [esi + 0x9c], 1
call fcn.0042f9d0
jmp 0x4375c5
lea ecx, [esi + 0x160]
lea edx, [esi + 0x90]
mov byte [esi + 7], 1
call fcn.0042f9d0
movzx eax, byte [esi + 0x16c]
cmp al, 2
je 0x4376d5
mov edi, dword [esi + 0x168]
mov ecx, dword [esi + 0x160]
mov edx, dword [esi + 0x164]
test edi, edi
jne 0x4375ff
test edx, edx
je 0x4375b0
push ecx
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4375b0
lea ebx, [esi + 0x16d]
mov byte [esi + 8], al
lea eax, [esi + 0xcd]
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 + 8]
mov byte [ebx + 2], ah
mov dword [esi + 0xc0], ecx
mov dword [esi + 0xc4], edx
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc8], edi
mov byte [esi + 0xcc], al
lea ecx, [esi + 0xc0]
push dword [esi + 0xc]
call fcn.00431d10
add esp, 4
cmp dword [esi + 0x24], 1
je 0x43766c
lea ecx, [esi + 0xc0]
call fcn.00435b20
mov edx, dword [esi + 0xc0]
lea ecx, [esi + 0x160]
mov dword [esi + 8], edx
push dword [esi + 0xc8]
call fcn.0043c830
add esp, 4
cmp dword [esi + 0xc4], 0
je 0x4376a3
push dword [esi + 8]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esi + 0x160]
test edi, edi
jne 0x438d97
lea ecx, [esi + 0x160]
lea edx, [esi + 0x90]
mov byte [esi + 7], 1
mov dword [esi + 0x588], 2
call fcn.0042f9d0
jmp 0x4375c5
lea ecx, [esi + 0xc0]
mov byte [esi + 7], 1
call fcn.0042fc80
cmp byte [esi + 0xcc], 2
jne 0x437701
lea ecx, [esi + 0xc0]
mov byte [esi + 7], 1
call fcn.0042c400
jmp 0x4377ea
mov eax, dword [esi + 0xc4]
mov ecx, dword [esi + 0xc0]
mov edx, dword [esi + 0xc8]
mov byte [esi + 0x8f], 0
mov dword [esi + 0x588], 0x1d
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0xcc]
mov dword [esi + 8], ecx
mov dword [esi + 0x70], edx
mov dword [esi + 0x20], eax
call fcn.004332c0
mov ecx, dword [esi + 0x70]
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 + 8]
mov dword [esi + 0x160], ecx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x164], edi
mov dword [esi + 0x168], edx
mov edx, dword [esi + 0x10]
mov dword [esi + 0x16c], ecx
lea ecx, [esi + 0x160]
push dword [esi + 0xc]
call fcn.00431d10
add esp, 4
cmp dword [esi + 0x24], 1
je 0x437798
lea ecx, [esi + 0x160]
call fcn.00435b20
mov edx, dword [esi + 0x160]
lea ecx, [esi + 0x90]
mov dword [esi + 0x20], edx
push dword [esi + 0x168]
call fcn.0043c830
add esp, 4
cmp dword [esi + 0x164], 0
je 0x4377cf
push dword [esi + 0x20]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esi + 0x90]
test edi, edi
je 0x4377ea
mov eax, dword [esi + 0x98]
mov ebx, dword [esi + 0x94]
jmp 0x437c21
mov edi, 0x200
xor ebx, ebx
mov dword [esi + 0x110], 2
mov dword [esi + 0x114], 0
mov dword [esi + 0x118], 0
mov dword [esi + 0x1c], 2
mov dword [esi + 0x14], 0
cmp edi, 0x201
jb 0x437841
jmp 0x437860
mov ebx, dword [esi + 8]
jbe 0x437904
cmp edi, 0x201
jae 0x437860
lea eax, [esi + 0x160]
mov dword [esi + 8], ebx
mov ebx, edi
mov dword [esi + 0x20], 0x200
mov edi, eax
jmp 0x4378a7
mov eax, dword [esi + 0x14]
sub edi, ebx
sub eax, ebx
cmp eax, edi
jae 0x437895
mov dword [esi + 0x588], 0x1b
lea ecx, [esi + 0x110]
mov edx, ebx
push edi
call fcn.00455cc0
add esp, 4
mov eax, dword [esi + 0x110]
mov ebx, dword [esi + 0x114]
mov dword [esi + 0x1c], eax
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x118], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 8], ebx
push 0
call dword [sym.imp.kernel32.dll_SetLastError]
push ebx
mov dword [esi + 0x70], edi
push edi
call dword [sym.imp.kernel32.dll_GetSystemDirectoryW]
mov edi, eax
test eax, eax
jne 0x4378cd
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x4379b2
cmp edi, ebx
jne 0x437830
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x439b57
lea edi, [ebx + ebx]
test ebx, ebx
mov ebx, dword [esi + 8]
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jae 0x437860
jmp 0x437841
mov edx, dword [esi + 0x20]
mov dword [esi + 0x588], 0x1b
cmp edi, edx
ja 0x439c72
mov edx, dword [esi + 0x70]
lea ecx, [esi + 0xc0]
push edi
call fcn.0042c500
add esp, 4
mov edx, dword [esi + 0x10]
mov dword [esi + 0x588], 0x1c
lea ecx, [esi + 0xc0]
push dword [esi + 0xc]
call fcn.00431d10
add esp, 4
cmp dword [esi + 0x24], 1
je 0x43795a
lea ecx, [esi + 0xc0]
call fcn.00435b20
mov edx, dword [esi + 0xc0]
lea ecx, [esi + 0x40]
mov dword [esi + 0x14], edx
push dword [esi + 0xc8]
call fcn.0043c830
add esp, 4
cmp dword [esi + 0xc4], 0
je 0x43798e
push dword [esi + 0x14]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
movq xmm0, qword [esi + 0x40]
mov eax, dword [esi + 0x48]
mov bl, 1
movq qword [esi + 0x94], xmm0
mov dword [esi + 0x9c], eax
mov dword [esi + 0x90], 0
jmp 0x4379d0
call sub.kernel32.dll_GetLastError
xor ebx, ebx
mov byte [esi + 0x94], 0
mov dword [esi + 0x98], eax
mov dword [esi + 0x90], 1
cmp dword [esi + 8], 0
je 0x4379e7
push dword [esi + 0x1c]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
test bl, bl
je 0x4379f9
mov edi, dword [esi + 0x94]
test edi, edi
jne 0x437c15
lea ecx, [esi + 0x90]
mov byte [esi + 7], 1
mov dword [esi + 0x588], 2
call fcn.0043c8e0
mov edi, 0x200
xor ebx, ebx
mov dword [esi + 0x110], 2
mov dword [esi + 0x114], 0
mov dword [esi + 0x118], 0
mov dword [esi + 0x1c], 2
mov dword [esi + 0x14], 0
cmp edi, 0x201
jb 0x437a61
jmp 0x437a80
mov ebx, dword [esi + 8]
jbe 0x437b24
cmp edi, 0x201
jae 0x437a80
lea eax, [esi + 0x160]
mov dword [esi + 8], ebx
mov ebx, edi
mov dword [esi + 0x20], 0x200
mov edi, eax
jmp 0x437ac7
mov eax, dword [esi + 0x14]
sub edi, ebx
sub eax, ebx
cmp eax, edi
jae 0x437ab5
mov dword [esi + 0x588], 0x19
lea ecx, [esi + 0x110]
mov edx, ebx
push edi
call fcn.00455cc0
add esp, 4
mov eax, dword [esi + 0x110]
mov ebx, dword [esi + 0x114]
mov dword [esi + 0x1c], eax
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x118], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 8], ebx
push 0
call dword [sym.imp.kernel32.dll_SetLastError]
push ebx
mov dword [esi + 0x70], edi
push edi
call dword [sym.imp.kernel32.dll_GetWindowsDirectoryW]
mov edi, eax
test eax, eax
jne 0x437aed
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x437bd2
cmp edi, ebx
jne 0x437a50
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x439b7d
lea edi, [ebx + ebx]
test ebx, ebx
mov ebx, dword [esi + 8]
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jae 0x437a80
jmp 0x437a61
mov edx, dword [esi + 0x20]
mov dword [esi + 0x588], 0x19
cmp edi, edx
ja 0x439ca2
mov edx, dword [esi + 0x70]
lea ecx, [esi + 0xc0]
push edi
call fcn.0042c500
add esp, 4
mov edx, dword [esi + 0x10]
mov dword [esi + 0x588], 0x1a
lea ecx, [esi + 0xc0]
push dword [esi + 0xc]
call fcn.00431d10
add esp, 4
cmp dword [esi + 0x24], 1
je 0x437b7a
lea ecx, [esi + 0xc0]
call fcn.00435b20
mov edx, dword [esi + 0xc0]
lea ecx, [esi + 0x40]
mov dword [esi + 0x14], edx
push dword [esi + 0xc8]
call fcn.0043c830
add esp, 4
cmp dword [esi + 0xc4], 0
je 0x437bae
push dword [esi + 0x14]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
movq xmm0, qword [esi + 0x40]
mov eax, dword [esi + 0x48]
mov bl, 1
movq qword [esi + 0x94], xmm0
mov dword [esi + 0x9c], eax
mov dword [esi + 0x90], 0
jmp 0x437bf0
call sub.kernel32.dll_GetLastError
xor ebx, ebx
mov byte [esi + 0x94], 0
mov dword [esi + 0x98], eax
mov dword [esi + 0x90], 1
cmp dword [esi + 8], 0
je 0x437c07
push dword [esi + 0x1c]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
test bl, bl
je 0x437c2c
mov edi, dword [esi + 0x94]
test edi, edi
je 0x437c2c
mov eax, dword [esi + 0x9c]
mov ebx, dword [esi + 0x98]
mov dword [esi + 0xc], eax
mov edx, dword [esi + 0x34]
jmp 0x437e9c
lea ecx, [esi + 0x90]
mov byte [esi + 7], 1
mov dword [esi + 0x588], 2
call fcn.0043c8e0
mov byte [esi + 7], 1
lea ecx, [esi + 0x40]
mov edx, str.PATHlibrary_std_src_sys_commonprocess.rs
push 4
call fcn.0042e7a0
add esp, 4
cmp byte [esi + 0x4c], 2
je 0x437dcc
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
add edx, ecx
mov dword [esi + 0x90], ecx
mov dword [esi + 0x14], eax
mov dword [esi + 0x20], ecx
mov dword [esi + 0x94], edx
mov word [esi + 0x98], 0
mov byte [esi + 0x9c], 1
jmp 0x437ca2
mov edi, dword [esi + 0x160]
test edi, edi
jne 0x439308
lea ecx, [esi + 0x160]
lea edx, [esi + 0x90]
mov dword [esi + 0x588], 0x17
call fcn.0042f9d0
jmp 0x437cd0
lea ecx, [esi + 0x160]
lea edx, [esi + 0x90]
call fcn.0042f9d0
movzx eax, byte [esi + 0x16c]
cmp al, 2
je 0x437db5
mov edi, dword [esi + 0x168]
mov ecx, dword [esi + 0x160]
mov edx, dword [esi + 0x164]
test edi, edi
jne 0x437d0a
test edx, edx
je 0x437cbf
push ecx
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x437cbf
lea ebx, [esi + 0x16d]
mov dword [esi + 8], ecx
lea ecx, [esi + 0xcd]
mov dword [esi + 0x588], 0x18
movzx ebx, word [ebx]
mov word [ecx], bx
lea ebx, [esi + 0x16d]
mov ah, byte [ebx + 2]
mov byte [ecx + 2], ah
mov ecx, dword [esi + 8]
mov dword [esi + 0xc0], ecx
mov dword [esi + 0xc4], edx
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc8], edi
mov byte [esi + 0xcc], al
lea ecx, [esi + 0xc0]
push dword [esi + 0xc]
call fcn.00431d10
add esp, 4
cmp dword [esi + 0x24], 1
je 0x437d75
lea ecx, [esi + 0xc0]
call fcn.00435b20
mov edx, dword [esi + 0xc0]
lea ecx, [esi + 0x160]
mov dword [esi + 8], edx
push dword [esi + 0xc8]
call fcn.0043c830
add esp, 4
cmp dword [esi + 0xc4], 0
je 0x437c94
push dword [esi + 8]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x437c94
cmp dword [esi + 0x14], 0
je 0x437dcc
push dword [esi + 0x20]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov byte [esi + 0x64], 2
mov dword [esi + 0x68], 0xde2a24
jmp 0x4370dd
xor ebx, ebx
mov edi, edx
test eax, eax
cmovne ebx, eax
test ebx, ebx
je 0x437e09
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 0x437e0f
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov dword [esi + 0x588], 0x22
lea ecx, [esi + 0x160]
push eax
call fcn.0042a270
add esp, 4
mov edx, dword [esi + 0x160]
mov eax, dword [esi + 0x164]
mov ecx, dword [esi + 0x168]
test edx, edx
je 0x437e60
mov dword [esi + 0x160], edx
mov dword [esi + 0x168], ecx
lea ecx, [esi + 0x60]
lea edx, [esi + 0x160]
mov dword [esi + 0x164], eax
call fcn.0043c760
jmp 0x437e6d
mov dword [esi + 0x64], eax
mov dword [esi + 0x68], ecx
mov dword [esi + 0x60], 0
mov eax, dword [esi + 0xc]
cmp dword [esi + 8], 0
je 0x437e85
push eax
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esi + 0x60]
mov eax, dword [esi + 0x68]
mov ebx, dword [esi + 0x64]
mov edx, dword [esi + 0x34]
test edi, edi
mov dword [esi + 0xc], eax
je 0x43853a
mov dword [esi + 0x14], edi
mov edi, dword [esi + 0xc]
mov dword [esi + 0x20], ebx
cmp edi, 5
jb 0x437ec4
mov eax, dword [esi + 0x14]
cmp word [eax + edi*2 - 0xa], 0x2e
jne 0x437ec4
mov eax, dword [esi + 0x14]
cmp word [eax + edi*2 - 2], 0
je 0x438678
movzx ecx, byte [edx + 0x65]
mov eax, dword [edx + 0x48]
mov edi, dword [edx + 0x50]
xor edx, edx
mov dword [esi + 0xc0], 2
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0x588], 0x14
mov byte [esi + 0x70], cl
lea ecx, [esi + 0xc0]
mov dword [esi + 0xc], eax
mov dword [esi + 8], edi
call fcn.0042a700
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0xc8]
mov edx, dword [esi + 0x10]
mov word [eax + ecx*2], 0x22
inc ecx
mov dword [esi + 0x160], edx
lea edx, [esi + 0x160]
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x164], ecx
lea ecx, [esi + 0xc0]
mov word [esi + 0x168], 0
call fcn.0042a5b0
mov edx, dword [esi + 0xc8]
cmp edx, dword [esi + 0xc4]
jne 0x437f70
lea ecx, [esi + 0xc0]
call fcn.0042a700
mov edx, dword [esi + 0xc8]
mov eax, dword [esi + 0xc0]
mov edi, dword [esi + 0xc]
movzx ecx, byte [esi + 0x70]
mov word [eax + edx*2], 0x22
mov eax, dword [esi + 8]
inc edx
mov dword [esi + 0x18], ecx
mov dword [esi + 0xc8], edx
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
mov dword [esi + 8], eax
cmp edi, dword [esi + 8]
je 0x43800a
nop
mov edx, dword [esi + 0xc8]
mov dword [esi + 0xc], edi
cmp edx, dword [esi + 0xc4]
jne 0x437fc5
lea ecx, [esi + 0xc0]
call fcn.0042a700
mov edx, dword [esi + 0xc8]
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0xc0]
lea ecx, [esi + 0x90]
mov word [eax + edx*2], 0x20
inc edx
mov dword [esi + 0xc8], edx
lea edx, [esi + 0xc0]
push dword [esi + 0x18]
push edi
call fcn.0043c9f0
add esp, 8
movzx eax, byte [esi + 0x90]
cmp al, 4
jne 0x438545
mov edi, dword [esi + 0xc]
add edi, 0x14
cmp edi, dword [esi + 8]
jne 0x437fa0
mov eax, dword [esi + 0xc0]
mov ebx, dword [esi + 0xc4]
mov edx, dword [esi + 0xc8]
test eax, eax
je 0x438595
mov cl, 1
mov edi, dword [esi + 0x20]
mov dword [esi + 0x148], 0
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x1c], edi
mov dword [esi + 0x3c], ecx
cmp edx, ebx
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], ebx
mov dword [esi + 0x12c], edx
jne 0x43807a
lea ecx, [esi + 0x124]
mov byte [esi + 0x32], 1
mov dword [esi + 0x588], 4
call fcn.0042a700
mov eax, dword [esi + 0x124]
mov edx, dword [esi + 0x12c]
mov ecx, dword [esi + 0x34]
mov word [eax + edx*2], 0
inc edx
mov eax, 0x400
mov dword [esi + 0x12c], edx
mov edx, 0x608
cmp byte [ecx + 0x64], 0
cmove edx, eax
or edx, dword [ecx + 0x54]
cmp dword [esi + 0x134], 0
mov dword [esi + 0x14c], edx
je 0x438640
mov ebx, dword [esi + 0x140]
mov edx, dword [esi + 0x138]
mov edi, dword [esi + 0x13c]
mov eax, 2
mov ecx, 0
mov dword [esi + 0x40], 2
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 8], 0
test ebx, ebx
mov dword [esi + 0x110], edx
mov dword [esi + 0x114], edi
mov dword [esi + 0x118], ebx
jne 0x438139
mov dword [esi + 0xc], edx
lea ecx, [esi + 0x40]
xor edx, edx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x18], edi
mov byte [esi + 0x2b], 1
mov dword [esi + 0x588], 0xc
call fcn.0042a700
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 0x10]
mov word [eax + ecx*2], 0
inc ecx
mov dword [esi + 0x48], ecx
mov dword [esi + 0x2c], eax
xor eax, eax
test edx, edx
mov dword [esi + 0x10], ecx
lea ecx, [esi + 0xc0]
mov dword [esi + 0x588], 0xd
mov dword [esi + 0x130], 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.004362d0
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x438cff
mov edx, dword [esi + 0xc8]
lea ecx, [edx + edx*8]
lea ecx, [ecx + ecx*2]
add ecx, edx
cmp byte [eax + ecx + 0xcc], 2
je 0x438cff
shl edx, 4
mov edi, dword [eax + edx]
movzx ebx, byte [eax + edx + 0xc]
mov dword [esi + 0xbc], edi
mov edi, dword [eax + edx + 4]
mov edx, dword [eax + edx + 8]
mov byte [esi + 0x123], bl
mov dword [esi + 0x18], edx
mov edx, dword [eax + ecx + 0xb4]
mov dword [esi + 0x84], edi
mov edi, dword [eax + ecx + 0xc4]
mov dword [esi + 0x58], edx
mov edx, dword [eax + ecx + 0xb8]
mov dword [esi + 0x38], edi
xor edi, edi
mov dword [esi + 0x5c], edx
mov edx, dword [eax + ecx + 0xbc]
mov dword [esi + 0x144], edx
mov edx, dword [eax + ecx + 0xc0]
mov eax, dword [eax + ecx + 0xc8]
add eax, edx
mov dword [esi + 0x11c], edx
mov dword [esi + 0xc], eax
jmp 0x43825b
xor edi, edi
test bx, bx
je 0x4385d3
mov bx, 1
test di, di
jne 0x438250
cmp edx, dword [esi + 0xc]
je 0x4382f3
movzx ecx, byte [edx]
movzx eax, cl
test cl, cl
js 0x43827a
inc edx
jmp 0x4382ca
movzx edi, byte [edx + 1]
and eax, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4382c2
mov dword [esi + 0x70], edx
movzx edx, byte [edx + 2]
shl edi, 6
and edx, 0x3f
or edx, edi
cmp cl, 0xf0
mov edi, edx
jb 0x4382d0
mov edx, dword [esi + 0x70]
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 0x4382ca
jmp 0x4382e2
shl eax, 6
add edx, 2
or eax, edi
xor edi, edi
mov ebx, eax
jmp 0x438252
mov edx, dword [esi + 0x70]
shl eax, 0xc
or eax, edi
add edx, 3
cmp eax, 0xffff
jbe 0x4382ca
and eax, 0x3ff
or eax, 0xdc00
mov edi, eax
jmp 0x438252
cmp dword [esi + 0x38], 0
mov edx, dword [esi + 0x2c]
je 0x438314
push dword [esi + 0x11c]
push 0
push dword [0xdeca40]
mov edi, edx
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, edi
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x144]
sub eax, ebx
cmp eax, edi
jae 0x43834a
mov dword [esi + 0x588], 0x10
lea ecx, [esi + 0x40]
mov edx, ebx
push edi
call fcn.00455cc0
add esp, 4
mov edx, dword [esi + 0x40]
mov ebx, dword [esi + 0x48]
mov edi, dword [esi + 0x144]
lea eax, [edi + edi]
mov dword [esi + 0x2c], edx
lea ecx, [edx + ebx*2]
push eax
push dword [esi + 0x58]
push ecx
call fcn.00449190
add esp, 0xc
add ebx, edi
cmp dword [esi + 0x5c], 0
mov dword [esi + 0x48], ebx
je 0x43837c
push dword [esi + 0x58]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp ebx, dword [esi + 0x44]
jne 0x4383a1
lea ecx, [esi + 0x40]
mov edx, ebx
mov byte [esi + 0x33], 1
mov dword [esi + 0x588], 0xe
call fcn.0042a700
mov eax, dword [esi + 0x40]
mov ebx, dword [esi + 0x48]
jmp 0x4383a4
mov eax, dword [esi + 0x2c]
mov word [eax + ebx*2], 0x3d
mov eax, dword [esi + 0xbc]
and dword [esi + 0x11c], 0xffffff00
inc ebx
xor edi, edi
mov dword [esi + 0x48], ebx
add dword [esi + 0x18], eax
jmp 0x4383d0
xor edi, edi
test dx, dx
je 0x4388c3
mov dx, 1
test di, di
jne 0x4383c5
cmp eax, dword [esi + 0x18]
je 0x438470
movzx ebx, byte [eax]
movzx ecx, bl
test bl, bl
js 0x4383ef
inc eax
jmp 0x438467
movzx edi, byte [eax + 1]
and ecx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x438436
mov dword [esi + 8], eax
movzx eax, byte [eax + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp bl, 0xf0
mov dword [esi + 0xc], eax
jb 0x438440
mov ebx, dword [esi + 8]
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 0x43844c
shl ecx, 6
add eax, 2
or ecx, edi
jmp 0x438467
mov eax, dword [esi + 8]
shl ecx, 0xc
add ecx, dword [esi + 0xc]
add eax, 3
cmp ecx, 0xffff
jbe 0x438467
and ecx, 0x3ff
or ecx, 0xdc00
mov edi, ecx
jmp 0x4383c7
xor edi, edi
mov edx, ecx
jmp 0x4383c7
mov ecx, dword [esi + 0xbc]
mov eax, ecx
shr eax, 8
cmp byte [esi + 0x123], 2
je 0x439962
mov dword [esi + 0x90], ecx
mov ecx, dword [esi + 0x18]
lea edx, [esi + 0x90]
mov dword [esi + 0x130], eax
mov dword [esi + 0x588], 0xf
mov dword [esi + 0x94], ecx
lea ecx, [esi + 0x40]
mov word [esi + 0x98], 0
call fcn.0042a5b0
cmp dword [esi + 0x84], 0
je 0x4384db
push dword [esi + 0xbc]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esi + 0x48]
cmp edi, dword [esi + 0x44]
jne 0x4384fe
lea ecx, [esi + 0x40]
mov edx, edi
mov byte [esi + 0x33], 0
mov dword [esi + 0x588], 0xe
call fcn.0042a700
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x40]
lea ecx, [esi + 0xc0]
lea edx, [esi + 0x160]
mov word [eax + edi*2], 0
inc edi
mov dword [esi + 0x2c], eax
mov dword [esi + 0x588], 0xd
mov dword [esi + 0x10], edi
mov dword [esi + 0x48], edi
mov edi, dword [esi + 0x11c]
mov dword [esi + 8], edi
call fcn.004362d0
jmp 0x4381ac
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0xc]
jmp 0x4370e6
movzx ecx, byte [esi + 0x97]
mov edi, dword [esi + 0x91]
movzx edx, word [esi + 0x95]
movzx eax, al
mov ebx, edi
shl ecx, 0x10
or edx, ecx
shl ebx, 8
cmp dword [esi + 0xc4], 0
je 0x43858f
push dword [esi + 0xc0]
push 0
push dword [0xdeca40]
mov dword [esi + 0xc], edx
mov dword [esi + 8], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
shld edx, edi, 8
or ebx, eax
mov eax, dword [esi + 0x88]
mov dword [eax], ebx
mov dword [eax + 4], edx
mov dword [eax + 8], 2
mov eax, dword [ebp + 8]
xor ebx, ebx
cmp dword [esi + 0x20], 0
je 0x4385c6
push dword [esi + 0x14]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp + 8]
test bl, bl
je 0x4370f8
jmp 0x437211
cmp dword [esi + 0x38], 0
je 0x4385ed
push dword [esi + 0x11c]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x84], 0
mov edi, dword [esi + 0x58]
je 0x43860d
push dword [esi + 0xbc]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
or dword [esi + 8], 2
cmp dword [esi + 0x5c], 0
mov dword [esi + 0x10], 0xde2a00
je 0x438caf
push edi
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esi + 0x588], 0xc
jmp 0x438caf
mov edx, 2
xor edi, edi
mov dword [esi + 8], 0
cmp byte [ecx + 0x44], 2
mov dword [esi + 0x18], edx
mov dword [esi + 0x2c], edi
jne 0x4387f1
mov dword [esi + 0xbc], 0
mov dword [esi + 0x58], 2
xor eax, eax
xor ecx, ecx
jmp 0x43897f
mov eax, dword [esi + 0x14]
movzx eax, word [eax + edi*2 - 8]
lea ecx, [eax - 0x42]
cmp ecx, 0x21
ja 0x437ec4
mov ebx, dword [esi + 0x5c]
add ebx, dword [ecx*4 + 0x43a8f4]
jmp ebx
mov edx, dword [ecx + 0x38]
mov eax, dword [ecx + 0x40]
xor edi, edi
add eax, edx
mov dword [esi + 0x70], edx
mov dword [esi + 0xc], eax
jmp 0x43880e
xor edi, edi
test bx, bx
je 0x4388a4
mov bx, 1
test di, di
jne 0x438803
cmp edx, dword [esi + 0xc]
je 0x4388fb
movzx ecx, byte [edx]
movzx eax, cl
test cl, cl
js 0x43882d
inc edx
jmp 0x43889b
movzx edi, byte [edx + 1]
and eax, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x43886e
mov dword [esi + 0x10], edx
movzx edx, byte [edx + 2]
shl edi, 6
and edx, 0x3f
or edx, edi
cmp cl, 0xf0
mov edi, edx
jb 0x438878
mov edx, dword [esi + 0x10]
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 0x438883
shl eax, 6
add edx, 2
or eax, edi
jmp 0x43889b
mov edx, dword [esi + 0x10]
shl eax, 0xc
or eax, edi
add edx, 3
cmp eax, 0xffff
jbe 0x43889b
and eax, 0x3ff
or eax, 0xdc00
mov edi, eax
jmp 0x438805
xor edi, edi
mov ebx, eax
jmp 0x438805
mov eax, dword [esi + 0x88]
mov dword [eax + 4], 0xde2a00
mov dword [eax], 2
mov dword [eax + 8], 2
jmp 0x439643
cmp dword [esi + 0x84], 0
mov edi, 2
je 0x438c90
mov dword [esi + 0x10], str.nul_byte_found_in_provided_data
push dword [esi + 0xbc]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x130]
jmp 0x438c9d
mov eax, dword [esi + 0x70]
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 + 0xc0]
mov word [esi + 0x168], 0
call fcn.0043aa10
mov eax, dword [esi + 0xc4]
mov edx, dword [esi + 0xc8]
cmp edx, eax
jne 0x438962
lea ecx, [esi + 0xc0]
mov dword [esi + 0x588], 0xb
call fcn.0042a700
mov eax, dword [esi + 0xc4]
mov edx, dword [esi + 0xc8]
mov ebx, dword [esi + 0xc0]
mov ecx, eax
and ecx, 0xffffff00
mov word [ebx + edx*2], 0
mov dword [esi + 0xbc], ebx
mov dword [esi + 0x58], ebx
movzx eax, al
pxor xmm0, xmm0
or eax, ecx
movdqa xmmword [esi + 0x40], xmm0
mov dword [esi + 0xc], eax
push 0xdeca48
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0xdeca2c]
test eax, 0x7fffffff
je 0x4389ba
mov dword [esi + 0x588], 6
call fcn.00456890
xor al, 1
jmp 0x4389bc
xor eax, eax
movzx edx, byte [0xdeca4c]
xor ecx, ecx
mov dword [esi + 0x64], 0xdeca48
mov dword [esi + 0x10], eax
mov byte [esi + 0x68], al
mov eax, dword [ebp + 8]
mov dword [esi + 0x90], 0
mov dword [esi + 0x98], 0
mov dword [esi + 0xa0], 0
mov dword [esi + 0x158], 2
mov dword [esi + 0x588], 7
test dl, dl
mov byte [esi + 0x70], dl
lea edx, [esi + 0x158]
setne cl
cmp byte [ebp + 0xc], 0
mov dword [esi + 0x60], ecx
mov ecx, dword [esi + 0x34]
cmovne edx, eax
cmp dword [ecx], 6
lea edi, [ecx + 8]
cmovne edx, ecx
cmp dword [ecx + 8], 6
cmove edi, eax
cmp dword [ecx + 0x10], 6
mov dword [esi + 0x38], edi
lea edi, [ecx + 0x10]
lea ecx, [esi + 0x160]
cmove edi, eax
lea eax, [esi + 0x90]
mov dword [esi + 0x5c], edi
push eax
push 0xfffffffffffffff6
call fcn.0043ced0
add esp, 8
movzx eax, byte [esi + 0x160]
cmp al, 4
jne 0x438bca
mov ecx, dword [esi + 0x164]
mov edx, dword [esi + 0x38]
lea eax, [esi + 0x98]
mov dword [esi + 0x588], 8
mov dword [esi + 0x84], ecx
lea ecx, [esi + 0x160]
push eax
push 0xfffffffffffffff5
call fcn.0043ced0
add esp, 8
movzx eax, byte [esi + 0x160]
cmp al, 4
jne 0x438c00
mov ecx, dword [esi + 0x164]
mov edx, dword [esi + 0x5c]
lea eax, [esi + 0xa0]
mov dword [esi + 0x588], 9
mov dword [esi + 0x38], ecx
lea ecx, [esi + 0x160]
push eax
push 0xfffffffffffffff4
call fcn.0043ced0
add esp, 8
movzx eax, byte [esi + 0x160]
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x14c]
cmp al, 4
jne 0x438d65
mov edi, dword [esi + 0x164]
cmp dword [esi + 0x84], 0
pxor xmm0, xmm0
mov dword [esi + 0x100], 0
movdqa xmmword [esi + 0xf0], xmm0
movdqa xmmword [esi + 0xe0], xmm0
movdqa xmmword [esi + 0xd0], xmm0
movdqa xmmword [esi + 0xc0], xmm0
jne 0x438b33
cmp dword [esi + 0x38], 0
jne 0x438b33
test edi, edi
je 0x438b58
mov eax, dword [esi + 0x84]
mov ebx, dword [esi + 0x38]
mov dword [esi + 0xec], 0x100
mov dword [esi + 0xf8], eax
mov dword [esi + 0xfc], ebx
mov dword [esi + 0x100], edi
mov eax, dword [edx + 0x60]
mov dword [esi + 0x5c], edi
test eax, eax
mov dword [esi + 0x11c], eax
je 0x4392f3
add edx, 0x58
lea ecx, [esi + 0x110]
mov dword [esi + 0xc0], 0x48
mov dword [esi + 0x588], 0xa
call fcn.0043d780
cmp dword [esi + 0x110], 0
mov ebx, dword [esi + 0x114]
mov edi, dword [esi + 0x118]
mov ecx, dword [esi + 0x14c]
lea edx, [esi + 0x160]
je 0x4393a0
mov eax, dword [esi + 0x88]
mov dword [eax], ebx
mov dword [eax + 4], edi
mov dword [eax + 8], 2
jmp 0x43956d
movzx ecx, byte [esi + 0x163]
mov edx, dword [esi + 0x88]
mov edi, dword [esi + 0x164]
movzx ebx, byte [esi + 0x70]
mov byte [edx + 3], cl
movzx ecx, word [esi + 0x161]
mov word [edx + 1], cx
mov byte [edx], al
mov dword [edx + 4], edi
mov dword [edx + 8], 2
jmp 0x43958f
movzx ecx, byte [esi + 0x163]
mov edx, dword [esi + 0x88]
mov edi, dword [esi + 0x164]
movzx ebx, byte [esi + 0x70]
mov byte [edx + 3], cl
movzx ecx, word [esi + 0x161]
mov word [edx + 1], cx
mov byte [edx], al
mov dword [edx + 4], edi
mov dword [edx + 8], 2
jmp 0x439583
mov eax, dword [esi + 0x130]
mov dword [esi + 0x10], 0xde2a00
shl eax, 8
mov dword [esi + 0x588], 0xc
or eax, edi
mov dword [esi + 8], eax
lea ecx, [esi + 0x160]
mov byte [esi + 0x2b], 0
mov dword [esi + 0x588], 0xc
call fcn.0043a980
cmp dword [esi + 0x44], 0
mov ebx, dword [esi + 0x10]
je 0x438ce2
push dword [esi + 0x40]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 8]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], 2
jmp 0x439660
lea ecx, [esi + 0x160]
mov byte [esi + 0x2b], 0
mov dword [esi + 0x588], 0xc
call fcn.0043a980
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x2c]
cmp ebx, dword [esi + 0x44]
jne 0x438d37
lea ecx, [esi + 0x40]
mov edx, ebx
mov byte [esi + 0x2b], 0
call fcn.0042a700
mov edi, dword [esi + 0x40]
mov ebx, dword [esi + 0x48]
mov word [edi + ebx*2], 0
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x40]
mov dword [esi + 8], eax
mov eax, dword [ebp + 8]
test edx, edx
jne 0x43864e
inc ebx
jmp 0x438ce5
movzx ecx, byte [esi + 0x163]
mov edx, dword [esi + 0x88]
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 0x439576
mov eax, dword [esi + 0x168]
mov ebx, dword [esi + 0x164]
jmp 0x437c21
lea edx, [esi + 0xc0]
mov dword [esi + 0xc0], 0x44
jmp 0x4393f5
mov eax, dword [esi + 0x168]
mov ebx, dword [esi + 0x164]
cmp dword [esi + 0x14], 0
mov dword [esi + 0xc], eax
je 0x437c24
push dword [esi + 0x20]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x437c24
movaps xmm1, xmmword [esi + 0xe0]
mov eax, dword [esi + 0x100]
movdqa xmm0, xmmword [esi + 0xf0]
movaps xmm2, xmmword [esi + 0xc0]
mov dword [esi + 0x34], edi
or ecx, 0x80000
movaps xmmword [esi + 0x180], xmm1
movaps xmm1, xmmword [esi + 0xd0]
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 + 0x124]
lea eax, [esi + 0x40]
push eax
push edx
push dword [esi + 0xbc]
push dword [esi + 0x2c]
push ecx
push 1
push 0
push 0
mov dword [esi + 0x2c], edi
push edi
push dword [esi + 0x3c]
call dword [sym.imp.kernel32.dll_CreateProcessW]
test eax, eax
je 0x43952e
mov eax, dword [esi + 0x88]
movsd xmm1, qword [esi + 0x98]
movq xmm0, qword [esi + 0xa0]
movsd xmm2, qword [esi + 0x90]
cmp dword [esi + 0x11c], 0
mov edx, dword [esi + 0x34]
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 0x439478
mov ecx, ebx
call fcn.0043da90
mov dword [esi + 0x588], 6
mov edi, dword [sym.imp.kernel32.dll_CloseHandle]
push dword [esi + 0x5c]
call edi
push dword [esi + 0x38]
call edi
push dword [esi + 0x84]
call edi
lea ecx, [esi + 0x60]
mov dword [esi + 0x588], 6
call fcn.0043dac0
cmp dword [esi + 0xc], 0
je 0x4394b9
push dword [esi + 0x58]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 8], 0
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x20]
je 0x4394d6
push dword [esi + 0x18]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x128], 0
je 0x4394f0
push dword [esi + 0x2c]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x1c], 0
je 0x439507
push dword [esi + 0x3c]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [esi + 0x24]
test ebx, ebx
sete al
or cl, al
cmp cl, 1
je 0x43720e
push edi
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x43720e
call sub.kernel32.dll_GetLastError
movzx ecx, word [esi + 0x110]
mov edx, dword [esi + 0x88]
cmp dword [esi + 0x11c], 0
mov word [edx + 1], cx
mov ch, byte [esi + 0x112]
mov byte [edx + 3], ch
mov byte [edx], 0
mov dword [edx + 4], eax
mov dword [edx + 8], 2
mov edx, dword [esi + 0x34]
je 0x43956d
mov ecx, ebx
call fcn.0043da90
push dword [esi + 0x5c]
call dword [sym.imp.kernel32.dll_CloseHandle]
movzx ebx, byte [esi + 0x70]
push dword [esi + 0x38]
call dword [sym.imp.kernel32.dll_CloseHandle]
push dword [esi + 0x84]
call dword [sym.imp.kernel32.dll_CloseHandle]
cmp dword [esi + 0x90], 0
je 0x4395a4
push dword [esi + 0x94]
call dword [sym.imp.kernel32.dll_CloseHandle]
cmp dword [esi + 0x98], 0
je 0x4395b9
push dword [esi + 0x9c]
call dword [sym.imp.kernel32.dll_CloseHandle]
cmp dword [esi + 0xa0], 0
je 0x4395ce
push dword [esi + 0xa4]
call dword [sym.imp.kernel32.dll_CloseHandle]
test bl, bl
je 0x4395f5
cmp byte [esi + 0x10], 0
jne 0x439621
mov eax, dword [0xdeca2c]
test eax, 0x7fffffff
je 0x439621
mov dword [esi + 0x588], 6
call fcn.00456890
jmp 0x439616
cmp byte [esi + 0x10], 0
jne 0x439621
mov eax, dword [0xdeca2c]
test eax, 0x7fffffff
je 0x439621
mov dword [esi + 0x588], 6
call fcn.00456890
test al, al
jne 0x439621
mov byte [0xdeca4c], 1
push 0xdeca48
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
cmp dword [esi + 0xc], 0
je 0x439643
push dword [esi + 0x58]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 8], 0
mov eax, dword [ebp + 8]
je 0x439660
push dword [esi + 0x18]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp + 8]
cmp dword [esi + 0x128], 0
je 0x439680
push dword [esi + 0x124]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp + 8]
cmp dword [esi + 0x1c], 0
je 0x43969a
push dword [esi + 0x3c]
push 0
push dword [0xdeca40]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp + 8]
cmp byte [esi + 0x24], 0
mov bl, 1
jne 0x437211
jmp 0x4385ac
mov dword [esi + 0x588], 0
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_e20cb7702117f1ad8127a16406ba9edd230c4f65library_alloc_srccollections_btree_navigate.rs
mov edx, 0x2b
push 0xde108c
call fcn.00455790
add esp, 4
jmp 0x439d46
mov edx, dword [esi + 0x84]
movzx edi, cl
mov dword [esi + 0x10], edx
jmp 0x438c9d
call sub.kernel32.dll_GetLastError
lea edx, [esi + 0x90]
lea ecx, [esi + 0x40]
mov dword [esi + 0xc0], 0xde29a0
mov dword [esi + 0xc4], 1
mov dword [esi + 0xd0], 0
mov byte [esi + 0x90], 0
mov dword [esi + 0x94], eax
mov dword [esi + 0x588], 0x24
mov dword [esi + 0x40], edx
mov dword [esi + 0xc8], ecx
lea ecx, [esi + 0xc0]
mov edx, 0xde29d0
mov dword [esi + 0x44], 0x42f100
mov dword [esi + 0xcc], 1
call fcn.00455610
jmp 0x439d46
mov dword [esi + 0x588], 0x26
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_e20cb7702117f1ad8127a16406ba9edd230c4f65library_alloc_srccollections_btree_navigate.rs
mov edx, 0x2b
push 0xde06e4
call fcn.00455790
add esp, 4
jmp 0x439d46
mov edx, dword [esi + 0x70]
mov ecx, 1
mov byte [esi + 0x57], 1
mov dword [esi + 0x588], 0x28
call fcn.00455560
jmp 0x439d46
mov edx, dword [esi + 0xc]
mov ecx, 1
mov dword [esi + 0x588], 0x26
call fcn.00455560
jmp 0x439d46
mov dword [esi + 0x588], 0x2a
call fcn.004126b0
jmp 0x439d46
mov byte [esi + 0x57], 1
mov dword [esi + 0x588], 0x28
call fcn.004126b0
jmp 0x439d46
mov dword [esi + 0x588], 0x26
call fcn.004126b0
jmp 0x439d46
mov dword [esi + 0x588], 0x2a
call fcn.004126b0
jmp 0x439d46
mov edx, dword [esi + 0x2c]
mov ecx, 2
mov dword [esi + 0x588], 0x2a
call fcn.00455560
jmp 0x439d46
mov dword [esi + 0x588], 0x2b
mov ecx, 1
xor edx, edx
push 0xde280c
call fcn.00455640
add esp, 4
jmp 0x439d46
mov edx, dword [esi + 8]
mov ecx, eax
push 0xde27ec
call fcn.00455720
add esp, 4
jmp 0x439d46
mov dword [esi + 0x588], 0x2c
mov ecx, edi
push 0xde27fc
call fcn.00455640
add esp, 4
jmp 0x439d46
mov dword [esi + 0x588], 0x29
mov ecx, str.assertion_failed:_self.height___0
mov edx, 0x21
push 0xde0db0
call fcn.00455790
add esp, 4
jmp 0x439d46
mov ecx, 1
mov edx, 4
mov byte [esi + 7], 1
mov dword [esi + 0x588], 2
call fcn.00455560
jmp 0x439d46
mov dword [esi + 0x588], 0x1b
mov ecx, str.internal_error:_entered_unreachable_code
mov edx, 0x28
push 0xde2f14
call fcn.00455790
add esp, 4
jmp 0x439d46
mov dword [esi + 0x588], 0x19
mov ecx, str.internal_error:_entered_unreachable_code
mov edx, 0x28
push 0xde2f14
call fcn.00455790
add esp, 4
jmp 0x439d46
call sub.kernel32.dll_GetLastError
lea edx, [esi + 0x90]
lea ecx, [esi + 0x40]
mov dword [esi + str.failure_getting_env_string_from_OS:], 0xde2840
mov dword [esi + 0x164], 1
mov dword [esi + 0x170], 0
mov byte [esi + 0x90], 0
mov dword [esi + 0x94], eax
mov dword [esi + 0x588], 0x27
mov dword [esi + 0x40], edx
mov dword [esi + 0x168], ecx
lea ecx, [esi + 0x160]
mov edx, 0xde2848
mov dword [esi + 0x44], 0x42f100
mov dword [esi + 0x16c], 1
call fcn.00455610
jmp 0x439d46
mov ecx, 1
mov edx, ebx
mov byte [esi + 7], 1
mov dword [esi + 0x588], 2
call fcn.00455560
jmp 0x439d46
mov byte [esi + 7], 1
mov dword [esi + 0x588], 2
call fcn.004126b0
jmp 0x439d46
mov ecx, edi
push 0xde2f04
call fcn.00455720
add esp, 4
jmp 0x439d46
mov dword [esi + 0x588], 0x22
push 0xde0760
call fcn.00455640
add esp, 4
jmp 0x439d46
mov ecx, edi
push 0xde2f04
call fcn.00455720
add esp, 4
jmp 0x439d46
ud2