Function at 0x5c2b30
Capabilities:
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x540
call 0x5c2b44
pop eax
mov dword [esp + 0x30], ecx
mov ecx, dword [edx + 0x4c]
mov dword [esp + 4], edx
mov dword [esp + 0x18], eax
movzx eax, byte [edx + 0x50]
test al, al
jne 0x5c2b87
test ecx, ecx
jne 0x5c2b87
mov dword [esp + 0x118], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x5c348e
jmp 0x5c34e5
test al, al
mov dword [esp + 0xd4], 0
mov dword [esp], ecx
mov dword [esp + 0xdc], 0
jne 0x5c2d04
call fcn.005a1450
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
nop word cs:[eax + eax]
nop
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x140]
push eax
call fcn.005bf3a0
add esp, 8
mov edi, dword [esp + 0x13c]
cmp edi, 0x80000000
je 0x5c2cfb
mov ecx, dword [esp + 0x14c]
movq xmm0, qword [esp + 0x144]
mov ebx, dword [esp + 0x140]
mov esi, dword [esp + 0x154]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x150]
movd eax, xmm0
movdqa xmmword [esp + 0xc0], xmm0
mov dword [esp + 0x9c], ebx
add eax, ebx
mov dword [esp + 0xa0], eax
mov word [esp + 0xa4], 0
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x158]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x44]
lea edx, [esp + 0x9c]
call fcn.00595d90
movaps xmm0, xmmword [esp + 0xc0]
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0xf0]
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe4], ebx
movlps qword [esp + 0xe8], xmm0
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xc]
movq xmm0, qword [esp + 0x44]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x10]
movq qword [ecx], xmm0
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], eax
lea edx, [esp + 0xd4]
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x44]
push eax
lea eax, [esp + 0xe4]
push eax
call fcn.00585fe0
add esp, 8
mov eax, dword [esp + 0x44]
test eax, 0x7fffffff
je 0x5c2bc0
push 1
push eax
push dword [esp + 0x50]
call fcn.004ed020
add esp, 0xc
jmp 0x5c2bc0
push dword [esp + 0x34]
call sub.KERNEL32.dll_FreeEnvironmentStringsW
mov ecx, dword [esp + 4]
mov esi, dword [esp]
xor edx, edx
mov eax, dword [ecx + 0x44]
mov ecx, dword [ecx + 0x48]
test eax, eax
setne dl
cmove esi, eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], esi
nop word cs:[eax + eax]
nop dword [eax]
lea ecx, [esp + 0x9c]
call fcn.0057fa40
mov ebx, eax
test eax, eax
je 0x5c32c4
cmp dword [edx], 0x80000000
mov edi, edx
jne 0x5c2ef0
mov esi, dword [esp + 0xd4]
test esi, esi
je 0x5c2d70
mov edi, dword [esp + 0xd8]
mov edx, esi
lea ecx, [esp + 0x44]
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push edi
call fcn.00589020
add esp, 0xc
cmp dword [esp + 0x44], 0
jne 0x5c2d70
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov byte [esp + 0x12c], 0
test ecx, ecx
jne 0x5c2e27
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], edx
lea edx, [esp + 0xe0]
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x13c]
push eax
call fcn.00588bd0
add esp, 4
jmp 0x5c31e3
movzx edx, word [eax + 0x1ea]
mov eax, dword [eax + edx*4 + 0x1ec]
dec ecx
jne 0x5c2e20
movzx ecx, word [eax + 0x1ea]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
dec ecx
mov dword [esp + 0x3c], ecx
lea edx, [esp + 0x34]
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x13c]
push eax
call fcn.00588bd0
add esp, 4
movsd xmm2, qword [esp + 0x154]
movsd xmm1, qword [esp + 0x14c]
mov eax, dword [esp + 0x164]
movq xmm0, qword [esp + 0x15c]
mov edx, dword [esp + 0x168]
mov ecx, dword [esp + 0x170]
movsd qword [esp + 0xf8], xmm2
movsd qword [esp + 0xf0], xmm1
movsd xmm2, qword [esp + 0x13c]
movsd xmm1, qword [esp + 0x144]
mov dword [esp + 0x108], eax
movq qword [esp + 0x100], xmm0
movsd qword [esp + 0xe8], xmm1
movsd qword [esp + 0xe0], xmm2
movzx eax, word [edx + 0x1ea]
cmp ecx, eax
jae 0x5c30a8
mov eax, edx
jmp 0x5c30d3
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
test eax, eax
mov dword [esp + 0xc], eax
je 0x5c2f2c
mov dword [esp + 0x10], ecx
js 0x5c5b2e
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 1
mov esi, dword [esp + 0x10]
push esi
call fcn.004ed010
add esp, 8
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x5c2f35
jmp 0x5c5b1e
mov esi, dword [esp + 0xc]
mov eax, 1
push esi
push ecx
mov dword [esp + 0x18], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [ebx + 0xc]
mov esi, dword [ebx + 0x18]
mov dword [esp + 8], edi
mov byte [esp + 0xc0], al
mov eax, dword [ebx + 0x14]
test esi, esi
je 0x5c2f98
cmp esi, 0x3fffffff
mov dword [esp], eax
ja 0x5c5b38
mov ebx, esi
add ebx, esi
js 0x5c5b38
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 2
push ebx
call fcn.004ed010
add esp, 8
test eax, eax
je 0x5c5b42
mov edi, eax
mov eax, dword [esp]
jmp 0x5c2f9f
mov edi, 2
xor ebx, ebx
push ebx
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov dword [esp], esi
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], eax
movzx eax, byte [esp + 0xc0]
mov byte [esp + 0x148], al
mov dword [esp + 0x14c], esi
mov dword [esp + 0x150], edi
mov edi, dword [esp + 8]
mov dword [esp + 0x154], esi
mov ebx, dword [edi + 8]
mov eax, dword [edi + 4]
test ebx, ebx
je 0x5c3032
mov dword [esp + 0xc0], eax
js 0x5c5b14
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 1
push ebx
call fcn.004ed010
add esp, 8
mov esi, eax
test eax, eax
mov eax, dword [esp + 0xc0]
jne 0x5c3037
jmp 0x5c5b52
mov esi, 1
push ebx
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [edi + 0xc]
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xec], al
lea edx, [esp + 0xd4]
lea eax, [esp + 0xe0]
lea ecx, [esp + 0x44]
push eax
lea eax, [esp + 0x140]
push eax
call fcn.00585fe0
add esp, 8
mov eax, dword [esp + 0x44]
test eax, 0x7fffffff
je 0x5c2d70
push 1
push eax
push dword [esp + 0x50]
call fcn.004ed020
add esp, 0xc
jmp 0x5c2d70
mov ebx, dword [esp + 0x16c]
nop
mov eax, dword [edx + 0xb0]
test eax, eax
je 0x5c30cf
movzx ecx, word [edx + 0x1e8]
inc ebx
mov edx, eax
cmp cx, word [eax + 0x1ea]
jae 0x5c30b0
jmp 0x5c30d3
xor eax, eax
mov ecx, ebx
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*2]
add edx, ecx
shl ecx, 4
mov ebx, dword [eax + edx + 0xcc]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0xf8]
movsd xmm0, qword [eax + edx + 0xc4]
movsd qword [esp + 0x64], xmm0
movsd xmm0, qword [eax + edx + 0xb4]
movsd xmm1, qword [eax + edx + 0xbc]
movsd qword [esp + 0x5c], xmm1
movsd qword [esp + 0x54], xmm0
mov dword [eax + edx + 0xcc], ebx
lea ebx, [esp + 0xfc]
movsd xmm0, qword [esp + 0xf0]
movsd qword [eax + edx + 0xc4], xmm0
movsd xmm0, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xe8]
movsd qword [eax + edx + 0xbc], xmm1
movsd qword [eax + edx + 0xb4], xmm0
lea edx, [esp + 0x70]
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd qword [eax + ecx], xmm0
movsd qword [eax + ecx + 8], xmm1
movsd xmm2, qword [esp + 0x6c]
movsd xmm1, qword [esp + 0x64]
mov eax, dword [esp + 0x7c]
movq xmm0, qword [esp + 0x74]
movsd qword [esp + 0x154], xmm2
movsd qword [esp + 0x14c], xmm1
movsd xmm2, qword [esp + 0x54]
movsd xmm1, qword [esp + 0x5c]
mov dword [esp + 0x164], eax
movq qword [esp + 0x15c], xmm0
movsd qword [esp + 0x144], xmm1
movsd qword [esp + 0x13c], xmm2
mov eax, dword [esp + 0x14c]
dec dword [esp + 0xdc]
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 0x13c]
mov ebx, dword [esp + 0x140]
cmp byte [esp + 0x12c], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x150]
mov dword [esp], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0xc], eax
je 0x5c3272
test edi, edi
mov dword [esp + 0xc0], ecx
je 0x5c5b62
mov eax, dword [esi + 0x1ec]
dec edi
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edi
mov dword [eax + 0xb0], 0
push 4
push 0x21c
push esi
call fcn.004ed020
add esp, 0xc
mov ecx, dword [esp + 0xc0]
cmp ecx, 0x80000000
je 0x5c2d70
test ecx, ecx
je 0x5c328e
push 1
push ecx
push ebx
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c32a7
add eax, eax
push 2
push eax
push dword [esp + 0x10]
call fcn.004ed020
add esp, 0xc
test dword [esp + 0xc], 0x7fffffff
je 0x5c2d70
push 1
push dword [esp + 0x10]
push dword [esp + 8]
jmp 0x5c309b
mov eax, dword [esp + 0xdc]
movq xmm0, qword [esp + 0xd4]
mov dword [esp + 0x124], eax
mov eax, dword [0x6b6a34]
movq qword [esp + 0x11c], xmm0
mov dword [esp + 0x118], 1
movzx eax, byte [eax]
push 1
push 4
call fcn.004ed010
add esp, 8
test eax, eax
je 0x5c5b7b
mov esi, eax
mov dword [eax], 0x48544150
add eax, 4
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], eax
mov word [esp + 0x5c], 0
lea ecx, [esp + 0xe0]
lea edx, [esp + 0x54]
call fcn.00595d90
mov eax, dword [esp + 0xe8]
movq xmm0, qword [esp + 0xe0]
mov dword [esp + 0x13c], 4
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], 4
mov byte [esp + 0x148], 0
mov dword [esp + 0x20], esi
xor esi, esi
movq qword [esp + 0x14c], xmm0
mov dword [esp + 0x154], eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x5c344f
mov ecx, dword [esp + 0x120]
mov dword [esp], ecx
movzx edx, word [eax + 0x1ea]
lea ecx, [eax + 0xb4]
mov dword [esp + 0xc0], eax
lea edi, [eax - 8]
mov esi, 0xffffffff
lea eax, [edx + edx*8]
mov dword [esp + 0x14], edx
lea ebx, [eax + eax*2]
add ebx, edx
test ebx, ebx
je 0x5c3410
lea eax, [ecx + 0x1c]
mov dword [esp + 0xc], eax
push 1
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x20]
call sub.KERNEL32.dll_CompareStringOrdinal
mov ecx, dword [esp + 0xc]
add edi, 0x10
inc esi
add ebx, 0xffffffe4
cmp eax, 3
je 0x5c33d0
cmp eax, 1
jne 0x5c3432
jmp 0x5c3414
mov esi, dword [esp + 0x14]
mov ecx, dword [esp]
mov eax, dword [esp + 0xc0]
sub ecx, 1
jb 0x5c3451
mov eax, dword [eax + esi*4 + 0x1ec]
mov dword [esp], ecx
jmp 0x5c33a8
cmp eax, 2
jne 0x5c5aa5
cmp dword [esp + 0xc0], 0
je 0x5c3451
mov esi, dword [edi - 4]
mov eax, dword [edi]
mov dword [esp], eax
jmp 0x5c3453
jmp 0x5c3453
xor esi, esi
push 1
push 4
push dword [esp + 0x28]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x5c347f
add eax, eax
push 2
push eax
push dword [esp + 0x18]
call fcn.004ed020
add esp, 0xc
mov dword [esp + 8], esi
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x5c34e5
mov eax, dword [esp + 4]
cmp ecx, 4
mov dword [esp + 0xc], ecx
mov edx, dword [eax + 0x1c]
mov eax, 0x5c03a0
jb 0x5c34c6
mov eax, dword [edx]
xor ecx, ecx
bswap eax
cmp eax, 0x5c5c3f5c
setb cl
cmp eax, 0x5c5c3f5d
mov eax, 0x5c03a0
adc ecx, 0xffffffff
mov ecx, 0x5c03c0
cmove eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], edx
movzx ebx, byte [ecx + edx - 1]
push ebx
call eax
add esp, 4
mov edi, dword [esp + 0xc]
test al, al
je 0x5c3571
mov byte [esp + 0x38], 2
mov dword [esp + 0x3c], 0x6e4f8c
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov dword [eax + 4], edi
mov dword [eax], esi
mov dword [eax + 8], 2
cmp dword [esp + 0x118], 0
je 0x5c3614
mov ecx, dword [esp + 0x11c]
test ecx, ecx
je 0x5c35ef
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x124]
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], edx
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], ecx
mov ecx, 1
mov dword [esp + 0x158], edx
jmp 0x5c35f3
xor eax, eax
cmp edi, 4
mov ecx, 0
jb 0x5c3636
mov esi, dword [esp + 0x10]
movzx ecx, byte [edi + esi - 4]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x2e
jne 0x5c362c
movzx ecx, byte [esi + edi - 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x5c362c
movzx ecx, byte [esi + edi - 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x78
jne 0x5c3630
mov ecx, ebx
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, bl
cmp cl, 0x65
sete cl
jmp 0x5c3632
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x15c], eax
lea ecx, [esp + 0x13c]
call fcn.00581770
mov eax, dword [ebp + 8]
cmp dword [eax], 4
jb 0x5c3624
push dword [eax + 4]
call sub.KERNEL32.dll_CloseHandle
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
jmp 0x5c3636
xor ecx, ecx
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
add edx, edi
mov dword [esp + 0xc0], edx
nop word cs:[eax + eax]
nop dword [eax]
cmp dword [esp + 0xc], eax
je 0x5c36be
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + eax]
cmp edx, 0x5c
je 0x5c3669
inc eax
cmp edx, 0x2f
jne 0x5c3650
test cl, cl
je 0x5c3771
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x13c]
push dword [esp + 0xc]
call fcn.005c8d40
add esp, 4
mov edx, dword [esp + 0x13c]
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x144]
cmp edx, 0x80000000
jne 0x5c3860
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], 0x80000000
jmp 0x5c39e4
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x5c36db
xor esi, esi
test cx, cx
je 0x5c384b
mov cx, 1
test si, si
jne 0x5c36d0
cmp eax, dword [esp + 0xc0]
je 0x5c38a3
movzx ebx, byte [eax]
test bl, bl
js 0x5c36fd
inc eax
mov edx, ebx
jmp 0x5c3748
movzx edi, byte [eax + 1]
mov edx, ebx
and edx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x5c3740
movzx esi, byte [eax + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp bl, 0xf0
jb 0x5c374e
movzx edi, byte [eax + 3]
and edx, 7
shl esi, 6
add eax, 4
shl edx, 0x12
and edi, 0x3f
or edi, esi
or edx, edi
cmp edx, 0xffff
jbe 0x5c3748
jmp 0x5c375e
shl edx, 6
add eax, 2
or edx, edi
xor esi, esi
mov ecx, edx
jmp 0x5c36d2
shl edx, 0xc
add eax, 3
or edx, esi
cmp edx, 0xffff
jbe 0x5c3748
and edx, 0x3ff
or edx, 0xdc00
mov esi, edx
jmp 0x5c36d2
mov edi, dword [esp + 0xc]
test edi, edi
js 0x5c5bc8
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 1
push edi
call fcn.004ed010
add esp, 8
test eax, eax
je 0x5c5b83
mov esi, eax
push edi
push dword [esp + 0x14]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x13c], edi
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], edi
mov byte [esp + 0x148], 0
lea eax, [esp + 0x13c]
push 4
push 0x6e4f49
push eax
call fcn.005bfb70
add esp, 0xc
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x140]
mov edi, dword [esp + 0x144]
mov dword [esp + 0xc], eax
mov edx, esi
lea ecx, [esp + 0x54]
push edi
call fcn.005c6490
add esp, 4
cmp dword [esp + 0x54], 0x80000000
jne 0x5c388a
mov dword [esp + 8], edi
push edi
push esi
call fcn.005b0dd0
add esp, 8
mov ebx, eax
test eax, eax
je 0x5c3924
mov edi, edx
cmp edx, 2
jne 0x5c38de
movzx eax, word [ebx]
cmp eax, 0x2e2e
jne 0x5c38de
mov ecx, 2
xor eax, eax
jmp 0x5c394f
mov dword [esp + 0x38], 2
mov dword [esp + 0x3c], 0x6e4f3c
jmp 0x5c34f2
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], ecx
lea ecx, [esp + 0x34]
lea edx, [esp + 0x13c]
call fcn.005b9f90
jmp 0x5c39e4
mov eax, dword [esp + 0x5c]
movq xmm0, qword [esp + 0x54]
mov dword [esp + 0x3c], eax
movq qword [esp + 0x34], xmm0
jmp 0x5c39d0
mov eax, dword [esp + 0xc]
cmp eax, 7
ja 0x5c392a
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
xor eax, eax
nop word cs:[eax + eax]
cmp byte [ecx + eax], 0x2e
je 0x5c43f1
inc eax
cmp dword [esp + 0xc], eax
jne 0x5c38c0
mov dword [esp + 0x1c], 0
jmp 0x5c43f9
xor ecx, ecx
mov eax, ebx
mov dword [esp], esi
nop word cs:[eax + eax]
nop
cmp edi, ecx
je 0x5c3946
cmp byte [eax + edi - 1], 0x2e
lea esi, [eax - 1]
mov edx, ecx
lea ecx, [ecx + 1]
mov eax, esi
jne 0x5c38f0
mov eax, edi
sub eax, ecx
mov dword [esp + 0x14], eax
inc eax
cmp eax, edi
ja 0x5c5be8
cmp edi, ecx
jne 0x5c4914
xor eax, eax
mov ecx, edi
jmp 0x5c394c
mov edi, dword [esp + 8]
jmp 0x5c396a
push eax
push dword [esp + 0x14]
push 0x2e
call fcn.004ffe10
add esp, 0xc
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 8]
jmp 0x5c43f9
mov eax, ebx
mov edx, edi
xor ebx, ebx
mov esi, dword [esp]
mov edi, dword [esp + 8]
test ebx, ebx
cmovne eax, ebx
test eax, eax
je 0x5c396a
test ebx, ebx
cmove ecx, edx
add eax, ecx
sub eax, esi
cmp edi, eax
cmovae edi, eax
mov edx, esi
lea ecx, [esp + 0x13c]
push edi
call fcn.005c8d40
add esp, 4
mov edx, dword [esp + 0x13c]
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x144]
cmp edx, 0x80000000
jne 0x5c39ab
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], 0x80000000
jmp 0x5c39d0
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], ecx
lea ecx, [esp + 0x34]
lea edx, [esp + 0x13c]
call fcn.005b9f90
mov eax, dword [esp + 0xc]
test eax, eax
je 0x5c39e4
push 1
push eax
push esi
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
cmp eax, 0x80000000
mov dword [esp + 0xc], eax
je 0x5c34fa
cmp edi, 5
mov dword [esp + 8], esi
jb 0x5c3a1c
cmp word [esi + edi*2 - 0xa], 0x2e
jne 0x5c3a1c
cmp word [esi + edi*2 - 2], 0
je 0x5c41a6
mov eax, dword [esp + 4]
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 2
mov dword [esp + 0x5c], 0
mov ebx, dword [eax + 0x2c]
mov esi, dword [eax + 0x30]
movzx eax, byte [eax + 0x65]
mov byte [esp], al
lea ecx, [esp + 0x54]
xor edx, edx
call fcn.00589f10
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0xc0]
mov word [eax + ecx*2], 0x22
mov eax, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], edi
mov word [esp + 0x144], 0
lea ecx, [esp + 0x54]
lea edx, [esp + 0x13c]
call fcn.00595c30
mov edx, dword [esp + 0x5c]
cmp edx, dword [esp + 0x54]
jne 0x5c3aad
lea ecx, [esp + 0x54]
call fcn.00589f10
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov word [eax + edx*2], 0x22
inc edx
test esi, esi
mov dword [esp + 0x5c], edx
je 0x5c3b23
shl esi, 2
lea edi, [esi + esi*4]
movzx esi, byte [esp]
nop word [eax + eax]
mov edx, dword [esp + 0x5c]
cmp edx, dword [esp + 0x54]
jne 0x5c3ae7
lea ecx, [esp + 0x54]
call fcn.00589f10
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov word [eax + edx*2], 0x20
inc edx
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x54]
lea ecx, [esp + 0xe0]
push esi
push ebx
call fcn.005b9b10
add esp, 8
movzx eax, byte [esp + 0xe0]
cmp al, 4
jne 0x5c4069
add ebx, 0x14
add edi, 0xffffffec
jne 0x5c3ad0
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
cmp edx, 0x80000000
je 0x5c40b4
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov al, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc0], ecx
cmp edx, esi
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], esi
jne 0x5c3b87
lea ecx, [esp + 0xd4]
call fcn.00589f10
mov edi, dword [esp + 0xd8]
mov esi, dword [esp + 0xdc]
mov ecx, dword [esp + 4]
mov word [edi + esi*2], 0
inc esi
mov eax, 0x400
mov edx, 0x608
mov dword [esp + 0xdc], esi
cmp byte [ecx + 0x64], 0
cmove edx, eax
or edx, dword [ecx + 0x54]
cmp dword [esp + 0x118], 0
mov dword [esp + 0x128], edx
je 0x5c4134
mov esi, dword [esp + 0x124]
mov edi, dword [esp + 0x11c]
mov ebx, dword [esp + 0x120]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 2
mov dword [esp + 0xa4], 0
mov dword [esp + 0x14], 0
mov dword [esp], 2
mov dword [esp + 0x10c], 0
test esi, esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], esi
jne 0x5c3c5b
mov al, 1
mov dword [esp], eax
lea ecx, [esp + 0x9c]
xor edx, edx
call fcn.00589f10
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov word [eax + ecx*2], 0
inc ecx
mov dword [esp], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0xa4], ecx
xor eax, eax
test edi, edi
lea ecx, [esp + 0x54]
lea edx, [esp + 0x13c]
setne al
cmove esi, edi
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], ebx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], edi
mov dword [esp + 0x158], ebx
mov ebx, dword [esp]
mov dword [esp + 0x15c], esi
xor esi, esi
call fcn.00587140
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5c4f44
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*2]
add edx, ecx
mov edi, dword [eax + edx + 0xb4]
cmp edi, 0x80000000
mov dword [esp + 0x24], edi
je 0x5c4f44
mov edi, dword [eax + edx + 0xc4]
mov dword [esp + 0x138], esi
mov dword [esp], ebx
mov esi, dword [eax + edx + 0xb8]
mov ebx, dword [eax + edx + 0xbc]
shl ecx, 4
mov dword [esp + 0x40], edi
mov edi, dword [eax + edx + 0xc8]
mov edx, dword [eax + edx + 0xcc]
mov dword [esp + 0x134], ebx
mov dword [esp + 0x98], esi
mov dword [esp + 0x110], edx
mov edx, dword [eax + ecx]
mov dword [esp + 0x114], edi
mov dword [esp + 0x2c], edx
mov edx, dword [eax + ecx + 4]
mov eax, dword [eax + ecx + 8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], eax
lea eax, [esi + ebx]
xor ebx, ebx
mov edx, esi
mov dword [esp + 0x1c], eax
jmp 0x5c3d7b
xor ebx, ebx
test di, di
je 0x5c40d3
mov di, 1
test bx, bx
jne 0x5c3d70
cmp edx, eax
je 0x5c3e14
movzx ebx, byte [edx]
test bl, bl
js 0x5c3d98
inc edx
mov esi, ebx
jmp 0x5c3de7
movzx ecx, byte [edx + 1]
mov esi, ebx
and esi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x5c3ddf
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
cmp bl, 0xf0
jb 0x5c3ded
movzx ecx, byte [edx + 3]
and esi, 7
shl eax, 6
add edx, 4
shl esi, 0x12
and ecx, 0x3f
or ecx, eax
or esi, ecx
mov eax, dword [esp + 0x1c]
cmp esi, 0xffff
jbe 0x5c3de7
jmp 0x5c3e01
shl esi, 6
add edx, 2
or esi, ecx
xor ebx, ebx
mov edi, esi
jmp 0x5c3d72
shl esi, 0xc
add edx, 3
or esi, eax
mov eax, dword [esp + 0x1c]
cmp esi, 0xffff
jbe 0x5c3de7
and esi, 0x3ff
or esi, 0xdc00
mov ebx, esi
jmp 0x5c3d72
mov eax, dword [esp + 0x24]
mov edx, dword [esp]
mov edi, dword [esp + 0x10c]
mov ebx, dword [esp + 0x114]
test eax, eax
je 0x5c3e4e
cmp eax, 0x80000000
je 0x5c58b0
mov esi, edx
push 1
push eax
push dword [esp + 0xa0]
call fcn.004ed020
add esp, 0xc
mov edx, esi
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x110]
sub eax, edi
cmp eax, esi
jae 0x5c3e89
mov edx, edi
lea ecx, [esp + 0x9c]
push esi
call fcn.0058a170
add esp, 4
mov edx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0x110]
lea eax, [esi + esi]
mov dword [esp], edx
lea ecx, [edx + edi*2]
push eax
push ebx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x40]
add edi, esi
mov dword [esp + 0xa4], edi
test eax, eax
je 0x5c3ebc
add eax, eax
push 2
push eax
push ebx
call fcn.004ed020
add esp, 0xc
cmp edi, dword [esp + 0x9c]
jne 0x5c3ee3
lea ecx, [esp + 0x9c]
mov edx, edi
call fcn.00589f10
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
jmp 0x5c3ee6
mov eax, dword [esp]
mov word [eax + edi*2], 0x3d
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
and dword [esp + 0x98], 0xffffff00
inc edi
mov dword [esp + 0xa4], edi
xor edi, edi
add eax, ecx
mov dword [esp], eax
jmp 0x5c3f1b
xor edi, edi
test dx, dx
je 0x5c49c8
mov dx, 1
test di, di
jne 0x5c3f10
cmp ecx, eax
je 0x5c3faf
movzx ebx, byte [ecx]
test bl, bl
js 0x5c3f38
inc ecx
mov esi, ebx
jmp 0x5c3fa6
movzx eax, byte [ecx + 1]
mov esi, ebx
and esi, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x5c3f73
movzx edi, byte [ecx + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x5c3f80
movzx eax, byte [ecx + 3]
and esi, 7
shl edi, 6
add ecx, 4
shl esi, 0x12
and eax, 0x3f
or eax, edi
or esi, eax
jmp 0x5c3f88
shl esi, 6
add ecx, 2
or esi, eax
mov eax, dword [esp]
jmp 0x5c3fa6
shl esi, 0xc
add ecx, 3
or esi, edi
mov eax, dword [esp]
cmp esi, 0xffff
jbe 0x5c3fa6
and esi, 0x3ff
or esi, 0xdc00
mov edi, esi
jmp 0x5c3f12
xor edi, edi
mov edx, esi
jmp 0x5c3f12
mov esi, dword [esp + 0x2c]
cmp esi, 0x80000000
je 0x5c5994
mov eax, dword [esp + 0x28]
mov edi, dword [esp]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edi
mov word [esp + 0xe8], 0
lea ecx, [esp + 0x9c]
lea edx, [esp + 0xe0]
call fcn.00595c30
test esi, esi
je 0x5c4004
push 1
push esi
push dword [esp + 0x30]
call fcn.004ed020
add esp, 0xc
mov edx, dword [esp + 0xa4]
cmp edx, dword [esp + 0x9c]
jne 0x5c4027
lea ecx, [esp + 0x9c]
call fcn.00589f10
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x98]
and eax, 0xffffff00
mov word [ebx + edx*2], 0
inc edx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x10c], edx
mov dword [esp + 0xa4], edx
mov esi, eax
lea edx, [esp + 0x13c]
jmp 0x5c3cbc
movzx ecx, byte [esp + 0xe7]
movzx esi, word [esp + 0xe5]
mov ebx, dword [esp + 0xe1]
shl ecx, 0x10
mov edi, ebx
or esi, ecx
movzx ecx, al
mov eax, dword [esp + 0x54]
shl edi, 8
test eax, eax
je 0x5c40ae
add eax, eax
push 2
push eax
push dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
call fcn.004ed020
mov ecx, dword [esp + 0x1c]
add esp, 0xc
shld esi, ebx, 8
or edi, ecx
mov eax, dword [esp + 0x30]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], 2
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
xor ebx, ebx
jmp 0x5c5844
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5c40ed
push 1
push eax
push dword [esp + 0xa0]
call fcn.004ed020
add esp, 0xc
or dword [esp + 0x14], 2
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x114]
mov esi, 0x6e4f3c
test eax, eax
je 0x5c4115
push 1
push eax
push dword [esp + 0x30]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x40]
test eax, eax
je 0x5c412b
add eax, eax
push 2
push eax
push ebx
call fcn.004ed020
add esp, 0xc
mov dword [esp + 0x18], esi
jmp 0x5c49f5
mov edi, dword [esp + 0xc]
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x14], 2
mov eax, dword [esp + 4]
mov dword [esp], ebx
mov dword [esp + 0x18], ecx
cmp dword [eax + 0x34], 0x80000000
jne 0x5c4318
xor eax, eax
xor esi, esi
mov dword [esp + 0x24], 2
pxor xmm0, xmm0
mov dword [esp + 0x1c], eax
movdqu xmmword [esp + 0x9c], xmm0
push 0x715190
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov eax, dword [0x715168]
mov dword [esp + 0x114], esi
test eax, 0x7fffffff
je 0x5c4c22
call fcn.005b7e00
xor al, 1
jmp 0x5c4c24
movzx eax, word [esi + edi*2 - 8]
lea ecx, [eax - 0x42]
cmp ecx, 0x21
ja 0x5c3a1c
mov edx, dword [esp + 0x18]
add edx, dword [ecx*4 + 0x5c62f4]
jmp edx
mov edx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
xor ebx, ebx
add eax, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
jmp 0x5c4337
xor ebx, ebx
test si, si
je 0x5c43ce
mov si, 1
test bx, bx
jne 0x5c432c
cmp edx, eax
je 0x5c4ea4
movzx ebx, byte [edx]
test bl, bl
js 0x5c4354
inc edx
mov edi, ebx
jmp 0x5c43bd
movzx ecx, byte [edx + 1]
mov edi, ebx
and edi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x5c438f
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
cmp bl, 0xf0
jb 0x5c4399
movzx ecx, byte [edx + 3]
and edi, 7
shl eax, 6
add edx, 4
shl edi, 0x12
and ecx, 0x3f
or ecx, eax
or edi, ecx
jmp 0x5c43a1
shl edi, 6
add edx, 2
or edi, ecx
jmp 0x5c43bd
shl edi, 0xc
add edx, 3
or edi, eax
mov eax, dword [esp + 0x1c]
cmp edi, 0xffff
jbe 0x5c43bd
and edi, 0x3ff
or edi, 0xdc00
mov ebx, edi
jmp 0x5c43c1
xor ebx, ebx
mov esi, edi
mov edi, dword [esp + 0xc]
test si, si
jne 0x5c4337
mov esi, dword [esp + 8]
mov edx, 0x6e4f3c
mov ebx, 2
mov eax, dword [esp + 0x30]
mov dword [eax + 4], edx
mov dword [eax], ebx
mov dword [eax + 8], 2
jmp 0x5c57e3
mov dword [esp + 0x1c], 1
test edx, edx
je 0x5c4526
mov eax, dword [esp]
mov dword [esp + 0x54], edx
add eax, edx
mov dword [esp + 0x58], eax
mov word [esp + 0x5c], 0
mov byte [esp + 0x60], 1
lea eax, [esp + 0x54]
lea esi, [esp + 0x13c]
push eax
push esi
call fcn.005bf530
add esp, 8
jmp 0x5c443f
lea eax, [esp + 0x54]
push eax
push esi
call fcn.005bf530
add esp, 8
mov eax, dword [esp + 0x13c]
cmp eax, 0x80000000
je 0x5c4526
mov edx, dword [esp + 0x144]
mov ecx, dword [esp + 0x140]
test edx, edx
je 0x5c450d
mov edi, dword [esp + 0x148]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], edx
mov dword [esp + 0x148], edi
push dword [esp + 0xc]
push dword [esp + 0x14]
push esi
call fcn.005afda0
add esp, 0xc
cmp dword [esp + 0x1c], 1
je 0x5c44b2
push 3
push str.exe.NULexit_code:
push esi
call fcn.005b08a0
add esp, 0xc
mov ebx, dword [esp + 0x140]
mov edx, ebx
lea ecx, [esp + 0xe0]
push dword [esp + 0x144]
call fcn.005c6490
add esp, 4
mov eax, dword [esp + 0x13c]
test eax, eax
je 0x5c44e8
push 1
push eax
push ebx
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0xe0]
cmp eax, 0x80000000
jne 0x5c47ae
lea eax, [esp + 0x54]
push eax
push esi
call fcn.005bf530
add esp, 8
jmp 0x5c443f
test eax, eax
je 0x5c4431
push 1
push eax
push ecx
call fcn.004ed020
add esp, 0xc
jmp 0x5c4431
lea ecx, [esp + 0x54]
call fcn.005bf760
mov esi, dword [esp + 0x54]
cmp esi, 0x80000000
jne 0x5c4549
lea ecx, [esp + 0x54]
call fcn.00582d30
jmp 0x5c4604
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], eax
push ebx
push edi
call fcn.005b0ca0
add esp, 8
mov ecx, dword [esp + 8]
cmp ebx, edx
mov dword [esp + 0x13c], esi
mov dword [esp + 0x140], edi
cmovb edx, ebx
test eax, eax
cmove edx, ebx
mov dword [esp + 0x144], edx
mov dword [esp + 0x148], ecx
lea esi, [esp + 0x13c]
push dword [esp + 0xc]
push dword [esp + 0x14]
push esi
call fcn.005afda0
add esp, 0xc
cmp dword [esp + 0x1c], 1
je 0x5c45bc
push 3
push str.exe.NULexit_code:
push esi
call fcn.005b08a0
add esp, 0xc
mov esi, dword [esp + 0x140]
mov edx, esi
lea ecx, [esp + 0xe0]
push dword [esp + 0x144]
call fcn.005c6490
add esp, 4
mov eax, dword [esp + 0x13c]
test eax, eax
je 0x5c45f2
push 1
push eax
push esi
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0xe0]
cmp eax, 0x80000000
jne 0x5c47ae
mov esi, 0x200
xor ebx, ebx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 2
mov dword [esp + 0xa4], 0
mov dword [esp + 0x20], 2
mov dword [esp], 0
cmp esi, 0x201
jb 0x5c4662
jmp 0x5c4680
mov ebx, dword [esp + 8]
jbe 0x5c471e
cmp esi, 0x201
jae 0x5c4680
mov dword [esp + 8], ebx
mov dword [esp + 0x14], 0x200
lea edi, [esp + 0x13c]
mov ebx, esi
jmp 0x5c46c5
mov eax, dword [esp]
sub esi, ebx
sub eax, ebx
cmp eax, esi
jae 0x5c46af
mov edx, ebx
lea ecx, [esp + 0x9c]
push esi
call fcn.0058a170
add esp, 4
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x20]
mov dword [esp + 0xa4], ebx
mov dword [esp], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 8], ebx
push 0
call sub.KERNEL32.dll_SetLastError
push ebx
push edi
call sub.KERNEL32.dll_GetSystemDirectoryW
mov esi, eax
test eax, eax
jne 0x5c46e6
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x5c47c5
cmp esi, ebx
jne 0x5c4650
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x5c5b96
lea esi, [ebx + ebx]
test ebx, ebx
mov ebx, dword [esp + 8]
mov eax, 0xffffffff
cmovs esi, eax
cmp esi, 0x201
jae 0x5c4680
jmp 0x5c4662
mov eax, dword [esp + 0x14]
cmp esi, eax
ja 0x5c5bfd
push esi
push edi
lea esi, [esp + 0x5c]
push esi
call fcn.005ae290
add esp, 0xc
push dword [esp + 0xc]
push dword [esp + 0x14]
push esi
call fcn.005afda0
add esp, 0xc
cmp dword [esp + 0x1c], 1
je 0x5c4765
push 3
push str.exe.NULexit_code:
lea eax, [esp + 0x5c]
push eax
call fcn.005b08a0
add esp, 0xc
mov esi, dword [esp + 0x58]
mov edx, esi
lea ecx, [esp + 0xe0]
push dword [esp + 0x5c]
call fcn.005c6490
add esp, 4
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5c4792
push 1
push eax
push esi
call fcn.004ed020
add esp, 0xc
movq xmm0, qword [esp + 0xe0]
mov eax, dword [esp + 0xe8]
movq qword [esp + 0x44], xmm0
mov dword [esp + 0x4c], eax
jmp 0x5c47df
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0xe8]
mov dword [esp + 0xc], eax
jmp 0x5c39ff
call sub.KERNEL32.dll_GetLastError
mov ebx, dword [esp + 8]
mov byte [esp + 0x48], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], 0x80000001
test ebx, ebx
je 0x5c47f4
add ebx, ebx
push 2
push ebx
push dword [esp + 0x28]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x44]
cmp eax, 0x80000001
jg 0x5c4c11
lea ecx, [esp + 0x44]
call fcn.00581540
mov esi, 0x200
xor edi, edi
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 2
mov dword [esp + 0xa4], 0
mov dword [esp + 0x20], 2
mov dword [esp], 0
cmp esi, 0x201
jb 0x5c485f
jmp 0x5c4876
mov edi, dword [esp + 8]
jbe 0x5c4935
cmp esi, 0x201
jae 0x5c4876
mov dword [esp + 8], edi
mov dword [esp + 0x14], 0x200
lea ebx, [esp + 0x13c]
mov edi, esi
jmp 0x5c48bb
mov eax, dword [esp]
sub esi, edi
sub eax, edi
cmp eax, esi
jae 0x5c48a5
mov edx, edi
lea ecx, [esp + 0x9c]
push esi
call fcn.0058a170
add esp, 4
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xa4], edi
mov dword [esp], edi
mov dword [esp + 0x14], edi
mov dword [esp + 8], edi
push 0
call sub.KERNEL32.dll_SetLastError
push edi
push ebx
call sub.KERNEL32.dll_GetWindowsDirectoryW
mov esi, eax
test eax, eax
jne 0x5c48dc
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x5c4a4c
cmp esi, edi
jne 0x5c484d
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x5c5baf
lea esi, [edi + edi]
test edi, edi
mov edi, dword [esp + 8]
mov eax, 0xffffffff
cmovs esi, eax
cmp esi, 0x201
jae 0x5c4876
jmp 0x5c485f
lea eax, [esi + edi + 1]
mov esi, dword [esp]
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x14]
test ebx, ebx
cmovne eax, ebx
test eax, eax
jne 0x5c395c
jmp 0x5c396a
mov eax, dword [esp + 0x14]
cmp esi, eax
ja 0x5c5c0e
push esi
push ebx
lea esi, [esp + 0x5c]
push esi
call fcn.005ae290
add esp, 0xc
push dword [esp + 0xc]
push dword [esp + 0x14]
push esi
call fcn.005afda0
add esp, 0xc
cmp dword [esp + 0x1c], 1
je 0x5c497c
push 3
push str.exe.NULexit_code:
lea eax, [esp + 0x5c]
push eax
call fcn.005b08a0
add esp, 0xc
mov esi, dword [esp + 0x58]
mov edx, esi
lea ecx, [esp + 0xe0]
push dword [esp + 0x5c]
call fcn.005c6490
add esp, 4
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5c49a9
push 1
push eax
push esi
call fcn.004ed020
add esp, 0xc
movq xmm0, qword [esp + 0xe0]
mov eax, dword [esp + 0xe8]
movq qword [esp + 0x44], xmm0
mov dword [esp + 0x4c], eax
jmp 0x5c4a66
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x5c49df
push 1
push eax
push dword [esp + 0x30]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x138]
mov dword [esp + 0x18], 0x6e4f3c
or eax, 2
mov dword [esp + 0x14], eax
mov dword [esp], 0
lea ecx, [esp + 0x13c]
call fcn.00581770
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x5c4a27
add eax, eax
push 2
push eax
push dword [esp + 0xa8]
call fcn.004ed020
add esp, 0xc
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov dword [eax], edx
mov dword [eax + 8], 2
jmp 0x5c57fc
call sub.KERNEL32.dll_GetLastError
mov edi, dword [esp + 8]
mov byte [esp + 0x48], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], 0x80000001
test edi, edi
je 0x5c4a7b
add edi, edi
push 2
push edi
push dword [esp + 0x28]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x44]
cmp eax, 0x80000002
jge 0x5c4c11
lea ecx, [esp + 0x44]
call fcn.00581540
lea eax, [esp + 0xe0]
push 4
push str.PATHlibrary_std_src_sys_commonprocess.rs
push eax
call fcn.005a1990
add esp, 0xc
mov ebx, dword [esp + 0xe0]
cmp ebx, 0x80000000
je 0x5c4e92
mov ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0xe8]
lea esi, [esp + 0x13c]
lea edi, [esp + 0x9c]
mov dword [esp + 8], ebx
add eax, ecx
mov dword [esp + 0x54], ecx
mov dword [esp], ecx
mov dword [esp + 0x58], eax
mov word [esp + 0x5c], 0
mov byte [esp + 0x60], 1
lea eax, [esp + 0x54]
push eax
push esi
call fcn.005bf530
add esp, 8
jmp 0x5c4b14
lea eax, [esp + 0x54]
push eax
push esi
call fcn.005bf530
add esp, 8
mov eax, dword [esp + 0x13c]
cmp eax, 0x80000000
je 0x5c4e7f
mov edx, dword [esp + 0x144]
mov ecx, dword [esp + 0x140]
test edx, edx
jne 0x5c4b4a
test eax, eax
je 0x5c4b06
push 1
push eax
push ecx
call fcn.004ed020
add esp, 0xc
jmp 0x5c4b06
mov ebx, edi
mov edi, dword [esp + 0x148]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], edx
mov dword [esp + 0x148], edi
mov edi, ebx
push dword [esp + 0xc]
push dword [esp + 0x14]
push esi
call fcn.005afda0
add esp, 0xc
cmp dword [esp + 0x1c], 1
je 0x5c4b99
push 3
push str.exe.NULexit_code:
push esi
call fcn.005b08a0
add esp, 0xc
mov ebx, dword [esp + 0x140]
mov edx, ebx
mov ecx, edi
push dword [esp + 0x144]
call fcn.005c6490
add esp, 4
mov eax, dword [esp + 0x13c]
test eax, eax
je 0x5c4bca
push 1
push eax
push ebx
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 8]
cmp eax, 0x80000000
je 0x5c4af6
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
test ebx, ebx
mov dword [esp + 0xc], eax
je 0x5c39ff
push 1
push dword [esp + 0xc]
push dword [esp + 8]
call fcn.004ed020
add esp, 0xc
jmp 0x5c39ff
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
jmp 0x5c39ff
xor eax, eax
movzx edx, byte [0x715194]
xor ecx, ecx
mov dword [esp + 0x38], 0x715190
mov ebx, eax
mov byte [esp + 0x3c], al
mov eax, dword [ebp + 8]
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0x12c], 2
test dl, dl
mov byte [esp + 0x28], dl
lea edx, [esp + 0x12c]
setne cl
cmp byte [ebp + 0xc], 0
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 4]
cmovne edx, eax
cmp dword [ecx], 6
lea edi, [ecx + 8]
lea esi, [ecx + 0x10]
cmovne edx, ecx
cmp dword [ecx + 8], 6
cmove edi, eax
cmp dword [ecx + 0x10], 6
cmove esi, eax
lea eax, [esp + 0xe0]
lea ecx, [esp + 0x13c]
push eax
push 0xfffffffffffffff6
call fcn.005c6540
add esp, 8
movzx eax, byte [esp + 0x13c]
cmp al, 4
jne 0x5c4e0d
mov ecx, dword [esp + 0x140]
lea eax, [esp + 0xe8]
mov dword [esp + 0x2c], ecx
mov edx, edi
lea ecx, [esp + 0x13c]
push eax
push 0xfffffffffffffff5
call fcn.005c6540
add esp, 8
movzx eax, byte [esp + 0x13c]
mov edi, dword [esp + 0xc]
cmp al, 4
jne 0x5c4e48
mov ecx, dword [esp + 0x140]
lea eax, [esp + 0xf0]
mov dword [esp + 0x40], ecx
mov edx, esi
lea ecx, [esp + 0x13c]
push eax
push 0xfffffffffffffff4
call fcn.005c6540
add esp, 8
movzx eax, byte [esp + 0x13c]
cmp al, 4
jne 0x5c4fdc
mov ecx, dword [esp + 0x140]
cmp dword [esp + 0x2c], 0
mov esi, dword [esp + 8]
pxor xmm0, xmm0
mov dword [esp + 0x94], 0
movdqu xmmword [esp + 0x84], xmm0
movdqu xmmword [esp + 0x74], xmm0
movdqu xmmword [esp + 0x64], xmm0
movdqu xmmword [esp + 0x54], xmm0
jne 0x5c4d83
cmp dword [esp + 0x40], 0
jne 0x5c4d83
test ecx, ecx
je 0x5c4dab
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x80], 0x100
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 4]
mov dword [esp + 0x98], ecx
mov eax, dword [edx + 0x60]
test eax, eax
mov dword [esp + 0x10c], eax
je 0x5c5553
add edx, 0x58
mov dword [esp + 0x54], 0x48
lea ecx, [esp + 0x44]
call fcn.005c6d50
cmp dword [esp + 0x44], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x13c]
je 0x5c5561
mov edx, eax
mov eax, dword [esp + 0x30]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [eax + 8], 2
jmp 0x5c571e
movzx ecx, byte [esp + 0x13f]
mov edx, dword [esp + 0x30]
movzx edi, word [esp + 0x13d]
mov esi, dword [esp + 0x140]
mov word [edx + 1], di
mov byte [edx + 3], cl
mov byte [edx], al
mov dword [edx + 4], esi
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov dword [edx + 8], 2
jmp 0x5c573c
movzx ecx, byte [esp + 0x13f]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x140]
mov byte [edx + 3], cl
movzx ecx, word [esp + 0x13d]
mov word [edx + 1], cx
mov byte [edx], al
mov dword [edx + 4], esi
mov esi, dword [esp + 8]
mov dword [edx + 8], 2
jmp 0x5c5733
test ebx, ebx
je 0x5c4e92
push 1
push ebx
push dword [esp + 8]
call fcn.004ed020
add esp, 0xc
mov byte [esp + 0x38], 2
mov dword [esp + 0x3c], 0x6e4f60
jmp 0x5c34f2
mov esi, dword [esp + 0x28]
mov ecx, eax
mov dword [esp + 0x13c], esi
mov dword [esp + 0x140], ecx
mov word [esp + 0x144], 0
lea ecx, [esp + 0x54]
lea edx, [esp + 0x13c]
call fcn.00595d90
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 8]
cmp edx, ecx
jne 0x5c5013
lea ecx, [esp + 0x54]
call fcn.00589f10
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
jmp 0x5c5015
mov dword [esp], 0
lea ecx, [esp + 0x13c]
call fcn.00581770
mov edx, dword [esp + 0x10c]
cmp edx, dword [esp + 0x9c]
jne 0x5c4f88
mov dword [esp], 0
lea ecx, [esp + 0x9c]
call fcn.00589f10
mov ebx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov word [ebx + edx*2], 0
mov ecx, edx
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
cmp edx, 0x80000000
mov dword [esp + 0x14], eax
jne 0x5c503f
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x5c4a2f
movzx ecx, byte [esp + 0x13f]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x140]
mov byte [edx + 3], cl
movzx ecx, word [esp + 0x13d]
mov word [edx + 1], cx
mov byte [edx], al
mov dword [edx + 4], esi
mov esi, dword [esp + 8]
mov dword [edx + 8], 2
jmp 0x5c572a
mov eax, ecx
mov ebx, dword [esp + 0x58]
cmp eax, 0x80000000
mov dword [esp + 0x1c], eax
mov word [ebx + edx*2], 0
jne 0x5c5030
inc edx
jmp 0x5c43dc
mov eax, dword [esp + 0x1c]
mov esi, ebx
mov dword [esp + 0x24], ebx
jmp 0x5c4168
mov eax, edx
mov ecx, edx
jmp 0x5c4144
mov dword [esp + 0x54], 0x44
lea edx, [esp + 0x54]
jmp 0x5c558f
mov dword [esp + 4], ecx
or dword [esp + 0x128], 0x80000
lea esi, [esp + 0x54]
mov ecx, 0x11
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x110], eax
mov dword [esp + 0x180], eax
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0xd8]
lea eax, [esp + 0x9c]
push eax
push edx
push dword [esp + 0x11c]
push dword [esp + 0xc]
push dword [esp + 0x138]
push 1
push 0
push 0
push esi
push dword [esp + 0xe4]
call sub.KERNEL32.dll_CreateProcessW
test eax, eax
je 0x5c56da
mov eax, dword [esp + 0x30]
movsd xmm1, qword [esp + 0xe8]
cmp dword [esp + 0x10c], 0
movq xmm0, qword [esp + 0xf0]
movsd xmm2, qword [esp + 0xe0]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esp + 0x9c]
movq qword [eax + 0x18], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax], xmm1
je 0x5c5621
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 4]
call fcn.00582a00
push dword [esp + 0x98]
call sub.KERNEL32.dll_CloseHandle
push dword [esp + 0x40]
call sub.KERNEL32.dll_CloseHandle
push dword [esp + 0x2c]
call sub.KERNEL32.dll_CloseHandle
lea ecx, [esp + 0x34]
call fcn.00581d60
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x5c5661
add eax, eax
push 2
push eax
push dword [esp + 0x2c]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5c567a
add eax, eax
push 2
push eax
push dword [esp + 0x1c]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x5c5693
add eax, eax
push 2
push eax
push esi
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c56af
add eax, eax
push 2
push eax
push dword [esp + 0xc8]
call fcn.004ed020
add esp, 0xc
mov ecx, dword [esp + 0x20]
test edi, edi
setne al
xor cl, 1
test al, cl
mov eax, dword [esp + 8]
je 0x5c3614
add edi, edi
push 2
push edi
push eax
call fcn.004ed020
add esp, 0xc
jmp 0x5c3614
call sub.KERNEL32.dll_GetLastError
movzx ecx, word [esp + 0x44]
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x10c], 0
mov esi, dword [esp + 8]
mov word [edx + 1], cx
mov ch, byte [esp + 0x46]
mov byte [edx + 3], ch
mov byte [edx], 0
mov dword [edx + 4], eax
mov dword [edx + 8], 2
je 0x5c571e
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 4]
call fcn.00582a00
push dword [esp + 0x98]
call sub.KERNEL32.dll_CloseHandle
push dword [esp + 0x40]
call sub.KERNEL32.dll_CloseHandle
push dword [esp + 0x2c]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esp + 0xe0], 0
je 0x5c5752
push dword [esp + 0xe4]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esp + 0xe8], 0
je 0x5c5768
push dword [esp + 0xec]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esp + 0xf0], 0
je 0x5c577e
push dword [esp + 0xf4]
call sub.KERNEL32.dll_CloseHandle
cmp byte [esp + 0x28], 0
je 0x5c579c
test bl, bl
jne 0x5c57c0
mov eax, dword [0x715168]
test eax, 0x7fffffff
je 0x5c57c0
call fcn.005b7e00
jmp 0x5c57b1
test bl, bl
jne 0x5c57c0
mov eax, dword [0x715168]
test eax, 0x7fffffff
je 0x5c57c0
call fcn.005b7e00
mov esi, dword [esp + 8]
test al, al
jne 0x5c57c0
mov byte [0x715194], 1
push 0x715190
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x5c57e3
add eax, eax
push 2
push eax
push dword [esp + 0x2c]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5c57fc
add eax, eax
push 2
push eax
push dword [esp + 0x1c]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x5c581b
add eax, eax
push 2
push eax
push dword [esp + 0xe0]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c5837
add eax, eax
push 2
push eax
push dword [esp + 0xc8]
call fcn.004ed020
add esp, 0xc
cmp byte [esp + 0x20], 0
mov bl, 1
jne 0x5c3614
test edi, edi
je 0x5c5856
add edi, edi
push 2
push edi
push esi
call fcn.004ed020
add esp, 0xc
test bl, bl
je 0x5c350a
jmp 0x5c3614
mov eax, dword [esp + 0x98]
mov esi, dword [esp + 0x134]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x5c4106
jmp 0x5c4115
mov eax, dword [esp + 0x28]
jmp 0x5c49f1
call sub.KERNEL32.dll_GetLastError
mov byte [esp + 0xe0], 0
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xe0]
mov dword [esp + 0x54], 0x6e4edc
mov dword [esp + 0x58], 1
mov dword [esp + 0x64], 0
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x9c]
mov dword [esp + 0xa0], fcn.005a5fb0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 1
push 0x6e4f0c
lea eax, [esp + 0x58]
push eax
call fcn.004faa60
add esp, 8
jmp 0x5c5c56
call fcn.004ed360
jmp 0x5c5c56
push esi
push 1
call fcn.004ed3a0
add esp, 8
jmp 0x5c5c56
call fcn.004ed360
jmp 0x5c5c56
call fcn.004ed360
jmp 0x5c5c56
push ebx
push 2
call fcn.004ed3a0
add esp, 8
jmp 0x5c5c56
push ebx
push 1
call fcn.004ed3a0
add esp, 8
jmp 0x5c5c56
push 0x6e1ae8
push 0x21
push str.assertion_failed:_self.height___0
call fcn.004faaf0
add esp, 0xc
jmp 0x5c5c56
mov dword [esp + 0xc], 4
push dword [esp + 0xc]
push 1
call fcn.004ed3a0
add esp, 8
jmp 0x5c5c56
push 0x6e560c
push 0x28
push str.internal_error:_entered_unreachable_code
call fcn.004faaf0
add esp, 0xc
jmp 0x5c5c56
push 0x6e560c
push 0x28
push str.internal_error:_entered_unreachable_code
call fcn.004faaf0
add esp, 0xc
jmp 0x5c5c56
call fcn.004ed360
jmp 0x5c5c56
push 0x6e129c
push edi
push eax
mov esi, dword [esp + 0xc]
call fcn.00500680
add esp, 0xc
jmp 0x5c5c56
push 0x6e55fc
push eax
push esi
call fcn.005006e0
add esp, 0xc
jmp 0x5c5c56
push 0x6e55fc
push eax
push esi
call fcn.005006e0
add esp, 0xc
jmp 0x5c5c56
ud2