Function at 0x4170d0
Capabilities:
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
sub esp, 0x568
call 0x4170e1
pop eax
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x41eee0
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], eax
mov eax, dword fs:[0]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [edx + 0x4c]
mov dword [ebp - 0x150], eax
movzx eax, byte [edx + 0x50]
test al, al
jne 0x417142
test esi, esi
jne 0x417142
mov dword [ebp - 0x160], 0
xor edi, edi
mov esi, dword [edx + 0x20]
test esi, esi
jne 0x417a5b
jmp 0x417abc
test al, al
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xf8], 0
jne 0x4172e0
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
test eax, eax
je 0x419c29
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x68], eax
nop word cs:[eax + eax]
nop
lea eax, [ebp - 0x68]
mov dword [ebp - 0x10], 5
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.00416150
add esp, 8
mov eax, dword [ebp - 0x574]
lea ecx, [ebp - 0x9c]
lea edx, [ebp - 0x130]
cmp eax, 0x80000000
je 0x4172d1
movq xmm0, qword [ebp - 0x56c]
mov edi, dword [ebp - 0x570]
mov esi, dword [ebp - 0x564]
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x558]
mov dword [ebp - 0x10], 7
movd eax, xmm0
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x560]
mov dword [ebp - 0x130], edi
movdqu xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x24], edi
add eax, edi
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x55c]
mov word [ebp - 0x128], 0
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x48], eax
call fcn.0040b480
mov eax, dword [ebp - 0x34]
movups xmm0, xmmword [ebp - 0xb0]
lea ecx, [ebp - 0xe4]
mov byte [ebp - 0x51], 0
mov dword [ebp - 0x10], 6
lea edx, [ebp - 0x100]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x94]
movlps qword [ebp - 0xec], xmm0
movq xmm0, qword [ebp - 0x9c]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x28]
movq qword [ecx], xmm0
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.00408370
add esp, 8
mov eax, dword [ebp - 0x9c]
test eax, 0x7fffffff
je 0x417180
push 1
push eax
push dword [ebp - 0x98]
call fcn.00403510
add esp, 0xc
jmp 0x417180
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov edx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x44]
mov eax, dword [edx + 0x44]
mov ecx, dword [edx + 0x48]
xor edx, edx
test eax, eax
setne dl
cmove esi, eax
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x10], 1
nop
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x10], 1
call fcn.00406530
mov edi, eax
test eax, eax
je 0x417897
cmp dword [edx], 0x80000000
mov esi, edx
jne 0x4174b0
mov edx, dword [ebp - 0x100]
test edx, edx
je 0x417330
mov eax, dword [ebp - 0xfc]
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x30], edx
push dword [edi + 0x18]
push dword [edi + 0x14]
mov dword [ebp - 0x28], eax
push eax
call fcn.0040ac10
add esp, 0xc
cmp dword [ebp - 0x6c], 0
jne 0x417330
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x60]
mov byte [ebp - 0x138], 0
test ecx, ecx
jne 0x4173e7
mov dword [ebp - 0xf4], eax
lea eax, [ebp - 0x138]
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], edx
lea ecx, [ebp - 0x574]
lea edx, [ebp - 0xf4]
push eax
call fcn.0040a3f0
add esp, 4
jmp 0x41777e
movzx edx, word [eax + 0x1ea]
mov eax, dword [eax + edx*4 + 0x1ec]
dec ecx
jne 0x4173e0
movzx ecx, word [eax + 0x1ea]
mov dword [ebp - 0x148], eax
lea eax, [ebp - 0x138]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x10], 1
lea edx, [ebp - 0x148]
dec ecx
mov dword [ebp - 0x140], ecx
lea ecx, [ebp - 0x574]
push eax
call fcn.0040a3f0
add esp, 4
movsd xmm2, qword [ebp - 0x55c]
movsd xmm1, qword [ebp - 0x564]
mov eax, dword [ebp - 0x54c]
movq xmm0, qword [ebp - 0x554]
mov edx, dword [ebp - 0x548]
mov ecx, dword [ebp - 0x540]
movsd qword [ebp - 0x118], xmm2
movsd qword [ebp - 0x120], xmm1
movsd xmm2, qword [ebp - 0x574]
movsd xmm1, qword [ebp - 0x56c]
mov dword [ebp - 0x108], eax
movq qword [ebp - 0x110], xmm0
movsd qword [ebp - 0x128], xmm1
movsd qword [ebp - 0x130], xmm2
movzx eax, word [edx + 0x1ea]
cmp ecx, eax
jae 0x417639
mov eax, edx
jmp 0x417663
mov ecx, dword [edi + 8]
mov ebx, dword [edi + 4]
test ecx, ecx
mov dword [ebp - 0x28], ecx
je 0x4174e2
js 0x419b5a
movzx eax, byte [0x43d189]
push 1
push ecx
call fcn.00403500
add esp, 8
test eax, eax
je 0x419b53
mov ecx, dword [ebp - 0x28]
jmp 0x4174e7
mov eax, 1
push ecx
push ebx
mov dword [ebp - 0x30], eax
push eax
call fcn.0042acb0
add esp, 0xc
mov ebx, dword [edi + 0x18]
movzx eax, byte [edi + 0xc]
mov ecx, dword [edi + 0x14]
test ebx, ebx
mov byte [ebp - 0x34], al
je 0x41753f
mov dword [ebp - 0x2c], ecx
lea ecx, [ebx + ebx]
cmp ebx, 0x3fffffff
mov dword [ebp - 0x24], ecx
ja 0x419b74
movzx eax, byte [0x43d189]
push 2
push ecx
call fcn.00403500
add esp, 8
test eax, eax
je 0x419b6d
mov edi, eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
jmp 0x417546
mov edi, 2
xor eax, eax
push eax
push ecx
push edi
call fcn.0042acb0
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x56c], eax
movzx eax, byte [ebp - 0x34]
mov byte [ebp - 0x568], al
mov dword [ebp - 0x564], ebx
mov dword [ebp - 0x560], edi
mov dword [ebp - 0x55c], ebx
mov ebx, dword [esi + 8]
mov eax, dword [esi + 4]
test ebx, ebx
je 0x4175b9
mov dword [ebp - 0x28], eax
js 0x419b4f
movzx eax, byte [0x43d189]
push 1
push ebx
call fcn.00403500
add esp, 8
test eax, eax
je 0x419b8e
mov edi, eax
mov eax, dword [ebp - 0x28]
jmp 0x4175be
mov edi, 1
push ebx
push eax
push edi
call fcn.0042acb0
add esp, 0xc
movzx eax, byte [esi + 0xc]
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xec], ebx
mov byte [ebp - 0x52], 0
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x130]
lea edx, [ebp - 0x100]
mov byte [ebp - 0xe8], al
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.00408370
add esp, 8
mov eax, dword [ebp - 0x130]
test eax, 0x7fffffff
je 0x417330
push 1
push eax
push dword [ebp - 0x12c]
call fcn.00403510
add esp, 0xc
jmp 0x417330
mov esi, dword [ebp - 0x544]
nop
mov eax, dword [edx + 0xb0]
test eax, eax
je 0x41765f
movzx ecx, word [edx + 0x1e8]
inc esi
mov edx, eax
cmp cx, word [eax + 0x1ea]
jae 0x417640
jmp 0x417663
xor eax, eax
mov ecx, esi
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*2]
add edx, ecx
shl ecx, 4
mov esi, dword [eax + edx + 0xcc]
mov dword [ebp - 0xdc], esi
mov esi, dword [ebp - 0x118]
movsd xmm0, qword [eax + edx + 0xc4]
movsd qword [ebp - 0xe4], xmm0
movsd xmm0, qword [eax + edx + 0xb4]
movsd xmm1, qword [eax + edx + 0xbc]
movsd qword [ebp - 0xec], xmm1
movsd qword [ebp - 0xf4], xmm0
mov dword [eax + edx + 0xcc], esi
lea esi, [ebp - 0x114]
movsd xmm0, qword [ebp - 0x120]
movsd qword [eax + edx + 0xc4], xmm0
movsd xmm0, qword [ebp - 0x130]
movsd xmm1, qword [ebp - 0x128]
movsd qword [eax + edx + 0xbc], xmm1
movsd qword [eax + edx + 0xb4], xmm0
lea edx, [ebp - 0xd8]
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [eax + ecx], xmm0
movsd qword [eax + ecx + 8], xmm1
movsd xmm1, qword [ebp - 0xec]
mov eax, dword [ebp - 0xcc]
movq xmm0, qword [ebp - 0xf4]
movsd xmm2, qword [ebp - 0xdc]
movsd qword [ebp - 0x56c], xmm1
movsd xmm1, qword [ebp - 0xe4]
mov dword [ebp - 0x54c], eax
movq qword [ebp - 0x574], xmm0
movsd qword [ebp - 0x55c], xmm2
movsd qword [ebp - 0x564], xmm1
movsd xmm1, qword [ebp - 0xd4]
movsd qword [ebp - 0x554], xmm1
movsd xmm2, qword [ebp - 0x55c]
movsd xmm1, qword [ebp - 0x564]
mov eax, dword [ebp - 0x54c]
movq xmm0, qword [ebp - 0x554]
dec dword [ebp - 0xf8]
cmp byte [ebp - 0x138], 0
movsd qword [ebp - 0xdc], xmm2
movsd qword [ebp - 0xe4], xmm1
movsd xmm2, qword [ebp - 0x574]
movsd xmm1, qword [ebp - 0x56c]
mov dword [ebp - 0xcc], eax
movq qword [ebp - 0xd4], xmm0
movsd qword [ebp - 0xec], xmm1
movsd qword [ebp - 0xf4], xmm2
je 0x417824
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x419bad
mov ecx, dword [ebp - 0x30]
dec edx
mov eax, dword [ecx + 0x1ec]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], edx
mov dword [eax + 0xb0], 0
push 4
push 0x21c
push ecx
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0xe4]
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd8]
cmp eax, 0x80000000
mov dword [ebp - 0x28], edx
je 0x417330
test eax, eax
je 0x417866
push 1
push eax
push ecx
call fcn.00403510
add esp, 0xc
test ebx, ebx
je 0x417878
add ebx, ebx
push 2
push ebx
push edi
call fcn.00403510
add esp, 0xc
test esi, 0x7fffffff
je 0x417330
push 1
push esi
push dword [ebp - 0x28]
call fcn.00403510
add esp, 0xc
jmp 0x417328
movq xmm0, qword [ebp - 0x100]
mov eax, dword [ebp - 0xf8]
movq qword [ebp - 0x15c], xmm0
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x160], 1
movzx eax, byte [0x43d189]
push 1
push 4
call fcn.00403500
add esp, 8
test eax, eax
je 0x419bcd
mov ecx, eax
mov dword [ebp - 0xf4], eax
lea edx, [ebp - 0xf4]
mov dword [eax], 0x48544150
mov dword [ebp - 0x10], 0x19
mov dword [ebp - 0xb0], eax
add ecx, 4
mov dword [ebp - 0xf0], ecx
lea ecx, [ebp - 0x130]
mov word [ebp - 0xec], 0
call fcn.0040b480
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0xb0]
movq xmm0, qword [ebp - 0x130]
mov dword [ebp - 0x574], 4
mov edx, dword [ebp - 0x15c]
xor edi, edi
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x56c], 4
mov byte [ebp - 0x568], 0
movq qword [ebp - 0x564], xmm0
mov dword [ebp - 0x55c], eax
mov dword [ebp - 0x34], eax
test edx, edx
mov eax, dword [ebp - 0x560]
mov dword [ebp - 0x30], eax
je 0x417a2a
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x24], eax
movzx esi, word [edx + 0x1ea]
lea ecx, [edx + 0xb4]
mov ebx, 0xffffffff
mov dword [ebp - 0x2c], edx
lea eax, [esi + esi*8]
mov dword [ebp - 0x48], esi
lea edi, [eax + eax*2]
add edi, esi
lea esi, [edx - 8]
nop word cs:[eax + eax]
nop dword [eax + eax]
test edi, edi
je 0x4179f0
lea eax, [ecx + 0x1c]
mov dword [ebp - 0x28], eax
push 1
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push dword [ebp - 0x34]
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
mov ecx, dword [ebp - 0x28]
add edi, 0xffffffe4
add esi, 0x10
inc ebx
cmp eax, 3
je 0x4179b0
cmp eax, 1
jne 0x417a11
jmp 0x4179f3
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x24]
sub eax, 1
jb 0x417f1e
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov edx, dword [edx + ebx*4 + 0x1ec]
jmp 0x41797e
cmp eax, 2
jne 0x419ad2
mov edi, dword [esi - 4]
mov eax, dword [esi]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0xb0]
jmp 0x417a2a
push 1
push 4
push ecx
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x564]
test eax, eax
je 0x417a51
add eax, eax
push 2
push eax
push dword [ebp - 0x30]
call fcn.00403510
add esp, 0xc
mov edx, dword [ebp - 0x78]
mov esi, dword [edx + 0x20]
test esi, esi
je 0x417abc
mov edx, dword [edx + 0x1c]
mov eax, 0x41db20
cmp esi, 4
mov dword [ebp - 0x24], edi
jb 0x417a95
mov eax, dword [edx]
xor ecx, ecx
mov dword [ebp - 0x10], 9
bswap eax
cmp eax, 0x5c5c3f5c
setb cl
cmp eax, 0x5c5c3f5d
mov eax, 0x41db20
adc ecx, 0xffffffff
mov ecx, 0x41db40
cmove eax, ecx
movzx ecx, byte [esi + edx - 1]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x28], esi
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
mov dword [ebp - 0x2c], ecx
push ecx
call eax
add esp, 4
test al, al
je 0x417b40
mov byte [ebp - 0x68], 2
mov dword [ebp - 0x64], 0x436bdc
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x64]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov dword [edx + 8], 2
cmp dword [ebp - 0x160], 0
je 0x417bf9
mov ecx, dword [ebp - 0x15c]
test ecx, ecx
je 0x417bd1
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], ecx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x568], edx
mov dword [ebp - 0x560], 0
mov dword [ebp - 0x55c], ecx
mov ecx, 1
mov dword [ebp - 0x558], edx
jmp 0x417bd5
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x30]
lea ebx, [edi + esi]
cmp esi, 3
mov dword [ebp - 0x34], ebx
jbe 0x417c22
movzx eax, byte [ebx - 4]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
xor eax, eax
cmp cl, 0x2e
mov ecx, 0
jne 0x417c50
movzx ecx, byte [ebx - 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x417c49
movzx ecx, byte [ebx - 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x78
jne 0x417c4d
mov edx, dword [ebp - 0x2c]
mov ecx, edx
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, dl
cmp cl, 0x65
sete cl
jmp 0x417c50
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x574], ecx
mov dword [ebp - 0x564], ecx
lea ecx, [ebp - 0x574]
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x10], 0
call fcn.00407360
cmp dword [ebp - 0x150], 4
jb 0x417c0e
push dword [ebp - 0x14c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x568
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, esi
mov ecx, edi
nop word cs:[eax + eax]
test eax, eax
je 0x417db4
movzx edx, byte [ecx]
cmp edx, 0x2f
je 0x417cb7
inc ecx
dec eax
cmp edx, 0x5c
jne 0x417c30
jmp 0x417cb7
xor ecx, ecx
jmp 0x417c50
xor ecx, ecx
nop
cmp esi, eax
je 0x417db4
movzx edx, byte [edi + eax]
cmp edx, 0x5c
je 0x417c67
inc eax
cmp edx, 0x2f
jne 0x417c50
test cl, cl
je 0x417cb7
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
lea ecx, [ebp - 0x574]
mov edx, edi
push esi
call fcn.0041cc60
add esp, 4
mov edx, dword [ebp - 0x574]
mov eax, dword [ebp - 0x570]
mov ecx, dword [ebp - 0x56c]
cmp edx, 0x80000000
jne 0x417ef5
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x6c], 0x80000000
jmp 0x4184df
test esi, esi
js 0x419ca3
movzx eax, byte [0x43d189]
push 1
push esi
call fcn.00403500
add esp, 8
test eax, eax
je 0x419ca7
mov ebx, eax
push esi
push edi
push eax
call fcn.0042acb0
add esp, 0xc
mov dword [ebp - 0x574], esi
mov dword [ebp - 0x570], ebx
mov dword [ebp - 0x56c], esi
mov dword [ebp - 0x568], 0
mov dword [ebp - 0x10], 0x17
lea eax, [ebp - 0x574]
push 4
push str..exeprogram_not_found
push eax
mov dword [ebp - 0x24], ebx
call fcn.0041d940
add esp, 0xc
mov eax, dword [ebp - 0x574]
mov edx, dword [ebp - 0x570]
mov esi, dword [ebp - 0x56c]
mov byte [ebp - 0x53], 1
mov dword [ebp - 0x10], 0x16
lea ecx, [ebp - 0xf4]
mov dword [ebp - 0x170], edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], esi
push esi
call fcn.0041a5d0
add esp, 4
cmp dword [ebp - 0xf4], 0x80000000
jne 0x417e86
mov dword [ebp - 0x10], 0x18
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
call fcn.00410690
add esp, 8
test eax, eax
je 0x418465
mov ebx, edx
cmp edx, 2
jne 0x417ea1
movzx ecx, word [eax]
cmp ecx, 0x2e2e
jne 0x417ea1
mov ebx, 2
jmp 0x417ecf
xor esi, esi
mov eax, edi
jmp 0x417dcb
xor esi, esi
test dx, dx
je 0x417e73
mov dx, 1
test si, si
jne 0x417dc0
cmp eax, ebx
je 0x417ed6
movzx ebx, byte [eax]
movzx ecx, bl
test bl, bl
js 0x417dec
mov ebx, dword [ebp - 0x34]
inc eax
jmp 0x417e41
movzx edi, byte [eax + 1]
and ecx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x417e33
movzx esi, byte [eax + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp bl, 0xf0
jb 0x417e4a
movzx edi, byte [eax + 3]
and ecx, 7
shl esi, 6
add eax, 4
shl ecx, 0x12
and edi, 0x3f
or edi, esi
or ecx, edi
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x34]
cmp ecx, 0xffff
jbe 0x417e41
jmp 0x417e60
shl ecx, 6
mov ebx, dword [ebp - 0x34]
add eax, 2
or ecx, edi
mov edi, dword [ebp - 0x30]
xor esi, esi
mov edx, ecx
jmp 0x417dc2
shl ecx, 0xc
add eax, 3
or ecx, esi
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x34]
cmp ecx, 0xffff
jbe 0x417e41
and ecx, 0x3ff
or ecx, 0xdc00
mov esi, ecx
jmp 0x417dc2
mov dword [ebp - 0x68], 2
mov dword [ebp - 0x64], 0x436bb0
jmp 0x417ac7
mov eax, dword [ebp - 0xec]
movq xmm0, qword [ebp - 0xf4]
mov dword [ebp - 0x64], eax
movq qword [ebp - 0x6c], xmm0
jmp 0x4184ca
xor ecx, ecx
mov esi, eax
nop word cs:[eax + eax]
nop
cmp ebx, ecx
je 0x417f25
cmp byte [esi + ebx - 1], 0x2e
lea edi, [esi - 1]
mov edx, ecx
lea ecx, [ecx + 1]
mov esi, edi
jne 0x417eb0
mov esi, ebx
sub esi, ecx
jne 0x418433
xor edi, edi
jmp 0x41843f
mov eax, dword [ebp - 0x28]
cmp eax, 7
ja 0x417f2e
dec eax
nop
sub eax, 1
setb dl
cmp byte [edi], 0x2e
sete dh
je 0x417f4b
inc edi
test dl, dl
je 0x417ee0
jmp 0x417f4b
mov dword [ebp - 0x574], edx
mov dword [ebp - 0x56c], ecx
lea ecx, [ebp - 0x6c]
lea edx, [ebp - 0x574]
mov dword [ebp - 0x570], eax
mov byte [ebp - 0x1d], 1
call fcn.00415a20
jmp 0x4184df
xor edi, edi
jmp 0x417a22
mov edx, ebx
xor ecx, ecx
jmp 0x418439
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
push eax
push edi
push 0x2e
call fcn.00427ee0
add esp, 0xc
cmp eax, 1
sete dh
mov eax, dword [ebp - 0x24]
mov byte [ebp - 0x44], dh
mov dword [ebp - 0x10], 9
test eax, eax
je 0x4180b7
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0xf4], eax
mov byte [ebp - 0x1d], 1
add ecx, eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 0xf0], ecx
mov word [ebp - 0xec], 0
mov byte [ebp - 0xe8], 1
lea ecx, [ebp - 0x574]
push eax
push ecx
call fcn.00416320
add esp, 8
jmp 0x417fb7
lea eax, [ebp - 0xf4]
mov byte [ebp - 0x1d], 1
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.00416320
add esp, 8
mov eax, dword [ebp - 0x574]
cmp eax, 0x80000000
je 0x4180b7
mov edx, dword [ebp - 0x56c]
mov ecx, dword [ebp - 0x570]
test edx, edx
je 0x41809e
mov esi, dword [ebp - 0x568]
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x56c], edx
mov dword [ebp - 0x10], 0x15
mov dword [ebp - 0x568], esi
push dword [ebp - 0x28]
push dword [ebp - 0x30]
lea eax, [ebp - 0x574]
push eax
call fcn.0040f570
add esp, 0xc
cmp byte [ebp - 0x44], 0
jne 0x418032
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0x574]
push eax
call fcn.004101f0
add esp, 0xc
mov edx, dword [ebp - 0x570]
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x24], edx
push dword [ebp - 0x56c]
call fcn.0041a5d0
add esp, 4
mov eax, dword [ebp - 0x574]
test eax, eax
je 0x418067
push 1
push eax
push dword [ebp - 0x24]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x130]
cmp eax, 0x80000000
jne 0x418422
lea eax, [ebp - 0xf4]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.00416320
add esp, 8
jmp 0x417fb7
test eax, eax
je 0x417f9d
push 1
push eax
push ecx
call fcn.00403510
add esp, 0xc
jmp 0x417f9d
lea ecx, [ebp - 0xf4]
mov byte [ebp - 0x1d], 1
call fcn.004165d0
mov eax, dword [ebp - 0xf4]
cmp eax, 0x80000000
mov dword [ebp - 0x24], eax
jne 0x418140
cmp byte [ebp - 0xf0], 3
jne 0x418228
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax]
mov dword [ebp - 0xb0], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
mov eax, dword [eax]
mov dword [ebp - 0x24], ecx
test eax, eax
je 0x41810f
mov dword [ebp - 0x10], 0x12
push dword [ebp - 0x24]
call eax
add esp, 4
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
test eax, eax
je 0x418129
push dword [edx + 8]
push eax
push ecx
call fcn.00403510
add esp, 0xc
push 4
push 0xc
push dword [ebp - 0xb0]
call fcn.00403510
add esp, 0xc
jmp 0x418228
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xe8]
mov byte [ebp - 0x54], 0
mov dword [ebp - 0x10], 0x13
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x48], edx
push edx
mov dword [ebp - 0x2c], eax
push eax
call fcn.00410560
add esp, 8
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x10], 0x14
cmp ecx, edx
cmovb edx, ecx
test eax, eax
mov eax, dword [ebp - 0x24]
cmove edx, ecx
mov dword [ebp - 0x574], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x570], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x56c], edx
mov dword [ebp - 0x568], eax
lea eax, [ebp - 0x574]
push dword [ebp - 0x28]
push dword [ebp - 0x30]
push eax
call fcn.0040f570
add esp, 0xc
cmp byte [ebp - 0x44], 0
jne 0x4181dc
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0x574]
push eax
call fcn.004101f0
add esp, 0xc
mov edx, dword [ebp - 0x570]
lea ecx, [ebp - 0x130]
mov dword [ebp - 0xb0], edx
push dword [ebp - 0x56c]
call fcn.0041a5d0
add esp, 4
mov eax, dword [ebp - 0x574]
test eax, eax
je 0x418217
push 1
push eax
push dword [ebp - 0xb0]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x130]
cmp eax, 0x80000000
jne 0x418422
mov edi, 0x200
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 2
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0xb0], 2
cmp edi, 0x201
jae 0x418290
jmp 0x41827e
jbe 0x41832c
cmp edi, 0x201
jae 0x418290
mov dword [ebp - 0x2c], 0x200
lea ebx, [ebp - 0x574]
mov esi, edi
jmp 0x4182d3
mov esi, dword [ebp - 0x24]
sub edi, esi
je 0x4182c1
mov dword [ebp - 0x10], 0x10
lea ecx, [ebp - 0x9c]
mov edx, esi
push edi
call fcn.0042ea70
add esp, 4
mov esi, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xb0], eax
mov ebx, dword [ebp - 0xb0]
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x24], esi
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edi, eax
test eax, eax
jne 0x4182f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4185d4
cmp edi, esi
jne 0x418270
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x419be9
lea edi, [esi + esi]
test esi, esi
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jb 0x41827e
jmp 0x418290
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], 0x10
cmp edi, eax
ja 0x419cc5
push edi
push ebx
lea eax, [ebp - 0xf4]
push eax
call fcn.0040e4f0
add esp, 0xc
mov dword [ebp - 0x10], 0x11
push dword [ebp - 0x28]
push dword [ebp - 0x30]
lea eax, [ebp - 0xf4]
push eax
call fcn.0040f570
add esp, 0xc
cmp byte [ebp - 0x44], 0
jne 0x418387
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0xf4]
push eax
call fcn.004101f0
add esp, 0xc
mov edx, dword [ebp - 0xf0]
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x24], edx
push dword [ebp - 0xec]
call fcn.0041a5d0
add esp, 4
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x4183bc
push 1
push eax
push dword [ebp - 0x24]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x130]
mov ebx, dword [ebp - 0x12c]
mov edi, dword [ebp - 0x128]
test eax, eax
je 0x4183eb
add eax, eax
push 2
push eax
push dword [ebp - 0x98]
call fcn.00403510
add esp, 0xc
mov eax, esi
cmp esi, 0x80000001
jg 0x418a65
cmp eax, 0x80000000
je 0x418652
cmp eax, 0x80000001
je 0x4185fb
sub esp, 0xc
mov dword [esp], ebx
mov dword [esp + 8], 2
jmp 0x41864a
mov ebx, dword [ebp - 0x12c]
mov edi, dword [ebp - 0x128]
jmp 0x418a65
mov ecx, eax
lea eax, [edi + ebx + 1]
mov edi, eax
mov ebx, esi
mov eax, ecx
test eax, eax
cmovne edi, eax
test edi, edi
je 0x418465
test eax, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], 0x18
cmove ebx, edx
mov edx, dword [ebp - 0x28]
add edi, ebx
sub edi, edx
cmp eax, edi
cmovae eax, edi
jmp 0x41846b
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], 0x18
lea ecx, [ebp - 0x574]
push eax
call fcn.0041cc60
add esp, 4
mov edx, dword [ebp - 0x574]
mov eax, dword [ebp - 0x570]
mov ecx, dword [ebp - 0x56c]
cmp edx, 0x80000000
jne 0x4184aa
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x6c], 0x80000000
jmp 0x4184ca
mov dword [ebp - 0x574], edx
mov dword [ebp - 0x56c], ecx
lea ecx, [ebp - 0x6c]
lea edx, [ebp - 0x574]
mov dword [ebp - 0x570], eax
call fcn.00415a20
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x4184df
push 1
push eax
push dword [ebp - 0x28]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x6c]
cmp eax, 0x80000000
je 0x417ac7
mov ebx, dword [ebp - 0x68]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x2c], eax
cmp edi, 5
mov dword [ebp - 0x48], ebx
jb 0x418a74
lea eax, [ebx + edi*2]
mov ecx, eax
add ecx, 0xfffffff6
je 0x418a74
cmp word [ecx], 0x2e
jne 0x418a74
cmp word [eax - 2], 0
jne 0x418a74
movzx ecx, word [eax - 8]
lea edx, [ecx - 0x42]
cmp edx, 0x21
ja 0x418a74
mov esi, dword [ebp - 0x74]
add esi, dword [edx*4 + 0x41a548]
jmp esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x4185f9
add eax, eax
push 2
push eax
push dword [ebp - 0x98]
call fcn.00403510
add esp, 0xc
xor ebx, ebx
cmp bl, 3
jne 0x418652
mov eax, dword [edi]
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0xb0], eax
mov eax, dword [eax]
test eax, eax
je 0x418626
mov dword [ebp - 0x10], 0xf
push dword [ebp - 0x2c]
call eax
add esp, 4
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
test eax, eax
je 0x418643
push dword [edx + 8]
push eax
push ecx
call fcn.00403510
add esp, 0xc
push 4
push 0xc
push dword [ebp - 0x24]
call fcn.00403510
add esp, 0xc
mov eax, 0x200
xor ebx, ebx
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 2
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x2c], 2
cmp eax, 0x201
jae 0x4186b0
jmp 0x41869d
jbe 0x418755
cmp eax, 0x201
jae 0x4186b0
mov dword [ebp - 0x24], 0x200
lea edi, [ebp - 0x574]
mov esi, eax
jmp 0x4186e9
sub eax, ebx
je 0x4186db
mov dword [ebp - 0x10], 0xd
lea ecx, [ebp - 0x9c]
mov edx, ebx
push eax
call fcn.0042ea70
add esp, 4
mov ebx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x2c], eax
mov edi, dword [ebp - 0x2c]
mov esi, ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x24], ebx
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x418721
mov dword [ebp - 0xb0], edi
mov edi, ebx
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov eax, ebx
mov ebx, edi
mov edi, dword [ebp - 0xb0]
test ecx, ecx
jne 0x41884f
cmp eax, esi
jne 0x418690
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x419c09
lea eax, [esi + esi]
test esi, esi
mov ecx, 0xffffffff
cmovs eax, ecx
cmp eax, 0x201
jb 0x41869d
jmp 0x4186b0
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10], 0xd
cmp eax, ecx
ja 0x419cd6
push eax
push edi
lea eax, [ebp - 0xf4]
push eax
call fcn.0040e4f0
add esp, 0xc
mov dword [ebp - 0x10], 0xe
push dword [ebp - 0x28]
push dword [ebp - 0x30]
lea eax, [ebp - 0xf4]
push eax
call fcn.0040f570
add esp, 0xc
cmp byte [ebp - 0x44], 0
jne 0x4187b0
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0xf4]
push eax
call fcn.004101f0
add esp, 0xc
mov edx, dword [ebp - 0xf0]
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x24], edx
push dword [ebp - 0xec]
call fcn.0041a5d0
add esp, 4
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x4187e5
push 1
push eax
push dword [ebp - 0x24]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x130]
mov ebx, dword [ebp - 0x12c]
mov edi, dword [ebp - 0x128]
test eax, eax
je 0x418814
add eax, eax
push 2
push eax
push dword [ebp - 0x98]
call fcn.00403510
add esp, 0xc
mov eax, esi
cmp esi, 0x80000001
jg 0x418a65
cmp eax, 0x80000000
je 0x4188d4
cmp eax, 0x80000001
je 0x418876
sub esp, 0xc
mov dword [esp], ebx
mov dword [esp + 8], 2
call fcn.00403510
add esp, 0xc
jmp 0x4188d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x418874
add eax, eax
push 2
push eax
push dword [ebp - 0x98]
call fcn.00403510
add esp, 0xc
xor ebx, ebx
cmp bl, 3
jne 0x4188d4
mov eax, dword [edi]
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0xb0], eax
mov eax, dword [eax]
test eax, eax
je 0x4188a1
mov dword [ebp - 0x10], 0xc
push dword [ebp - 0x2c]
call eax
add esp, 4
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
test eax, eax
je 0x4188be
push dword [edx + 8]
push eax
push ecx
call fcn.00403510
add esp, 0xc
push 4
push 0xc
push dword [ebp - 0x24]
call fcn.00403510
add esp, 0xc
mov dword [ebp - 0x10], 9
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
lea eax, [ebp - 0x130]
push 4
push str.PATHlibrary_std_src_sys_commonwtf8.rs
push eax
call fcn.0040c0f0
add esp, 0xc
mov eax, dword [ebp - 0x130]
cmp eax, 0x80000000
je 0x419410
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x24], eax
add edx, ecx
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xf0], edx
mov word [ebp - 0xec], 0
mov byte [ebp - 0xe8], 1
lea eax, [ebp - 0xf4]
lea ecx, [ebp - 0x574]
mov dword [ebp - 0x10], 0xa
push eax
push ecx
call fcn.00416320
add esp, 8
jmp 0x41896b
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.00416320
add esp, 8
mov eax, dword [ebp - 0x574]
mov edi, dword [ebp - 0x30]
cmp eax, 0x80000000
je 0x4193fb
mov edx, dword [ebp - 0x56c]
mov ecx, dword [ebp - 0x570]
test edx, edx
jne 0x4189a1
test eax, eax
je 0x418955
push 1
push eax
push ecx
call fcn.00403510
add esp, 0xc
jmp 0x418955
mov esi, dword [ebp - 0x568]
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x56c], edx
mov dword [ebp - 0x10], 0xb
mov dword [ebp - 0x568], esi
push dword [ebp - 0x28]
push edi
lea eax, [ebp - 0x574]
push eax
call fcn.0040f570
add esp, 0xc
cmp byte [ebp - 0x44], 0
jne 0x4189f5
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0x574]
push eax
call fcn.004101f0
add esp, 0xc
mov edx, dword [ebp - 0x570]
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0xb0], edx
push dword [ebp - 0x56c]
call fcn.0041a5d0
add esp, 4
mov eax, dword [ebp - 0x574]
test eax, eax
je 0x418a30
push 1
push eax
push dword [ebp - 0xb0]
call fcn.00403510
add esp, 0xc
mov esi, dword [ebp - 0x9c]
cmp esi, 0x80000000
je 0x418936
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
test eax, eax
je 0x418a63
push 1
push eax
push dword [ebp - 0x2c]
call fcn.00403510
add esp, 0xc
mov eax, esi
mov dword [ebp - 0x2c], eax
cmp edi, 5
mov dword [ebp - 0x48], ebx
jae 0x418502
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf0], 2
mov dword [ebp - 0xec], 0
mov dword [ebp - 0x10], 0x1d
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + 0x30]
movzx eax, byte [eax + 0x65]
mov dword [ebp - 0xb0], ecx
lea ecx, [ebp - 0xf4]
mov byte [ebp - 0x24], al
call fcn.0040b0d0
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov word [eax], 0x22
mov dword [ebp - 0x574], edx
mov dword [ebp - 0x570], ecx
lea ecx, [ebp - 0xf4]
lea edx, [ebp - 0x574]
mov dword [ebp - 0xec], 1
mov word [ebp - 0x56c], 0
call fcn.0040b310
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xec]
cmp ecx, dword [ebp - 0xf4]
jne 0x418b23
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0xf4]
call fcn.0040b0d0
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0xf0]
mov word [eax + ecx*2], 0x22
mov eax, dword [ebp - 0xb0]
inc ecx
mov dword [ebp - 0xec], ecx
movzx ecx, byte [ebp - 0x24]
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
cmp esi, dword [ebp - 0x30]
je 0x418bc8
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0x28], esi
cmp ecx, dword [ebp - 0xf4]
jne 0x418b85
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0xf4]
call fcn.0040b0d0
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0xf0]
lea edx, [ebp - 0xf4]
mov word [eax + ecx*2], 0x20
inc ecx
mov dword [ebp - 0xec], ecx
lea ecx, [ebp - 0x130]
push dword [ebp - 0x34]
push esi
call fcn.00414a90
mov esi, dword [ebp - 0x28]
add esp, 8
cmp byte [ebp - 0x130], 4
jne 0x4190e6
add esi, 0x14
cmp esi, dword [ebp - 0x30]
jne 0x418b60
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xf0]
mov edi, dword [ebp - 0xec]
cmp eax, 0x80000000
je 0x41910f
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x48]
mov cl, 1
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x74], edx
mov ecx, dword [ebp - 0x78]
cmp eax, edi
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf8], edi
jne 0x418c41
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x28], edi
mov byte [ebp - 0x38], 1
mov dword [ebp - 0x10], 0x1e
call fcn.0040b0d0
mov esi, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x28]
mov word [esi + edi*2], 0
inc edi
mov eax, 0x400
mov edx, 0x608
cmp byte [ecx + 0x64], 0
mov dword [ebp - 0xf8], edi
cmove edx, eax
or edx, dword [ecx + 0x54]
cmp dword [ebp - 0x160], 0
mov dword [ebp - 0x16c], edx
je 0x4191a4
mov esi, dword [ebp - 0x154]
movq xmm0, qword [ebp - 0x15c]
mov eax, 2
mov ecx, 0
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 2
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x30], 0
test esi, esi
mov dword [ebp - 0x64], esi
movq qword [ebp - 0x6c], xmm0
jne 0x418cf4
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x28], esi
mov byte [ebp - 0x35], 1
mov dword [ebp - 0x10], 0x1f
call fcn.0040b0d0
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0x28]
mov ecx, 1
mov word [eax], 0
mov dword [ebp - 0x94], 1
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 0x68]
xor edx, edx
mov dword [ebp - 0x10], 0x20
test eax, eax
setne dl
cmove esi, eax
mov dword [ebp - 0x574], edx
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], eax
mov dword [ebp - 0x568], ecx
mov dword [ebp - 0x564], edx
mov dword [ebp - 0x560], 0
mov dword [ebp - 0x55c], eax
mov dword [ebp - 0x558], ecx
lea ecx, [ebp - 0xf4]
lea edx, [ebp - 0x574]
mov dword [ebp - 0x554], esi
call fcn.004092e0
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x419590
mov eax, dword [ebp - 0xec]
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
mov esi, dword [ecx + edx + 0xb4]
cmp esi, 0x80000000
je 0x419590
shl eax, 4
mov dword [ebp - 0x5c], esi
mov edi, dword [ecx + edx + 0xcc]
xor ebx, ebx
mov esi, dword [ecx + eax]
mov dword [ebp - 0x164], edi
mov dword [ebp - 0x40], esi
mov esi, dword [ecx + eax + 4]
mov eax, dword [ecx + eax + 8]
mov dword [ebp - 0x58], esi
mov esi, dword [ecx + edx + 0xc4]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + edx + 0xb8]
mov dword [ebp - 0x50], esi
mov esi, dword [ecx + edx + 0xc8]
mov ecx, dword [ecx + edx + 0xbc]
mov edx, eax
mov dword [ebp - 0x104], eax
add ecx, eax
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x28], ecx
jmp 0x418dfb
xor ebx, ebx
test di, di
je 0x419144
mov di, 1
test bx, bx
jne 0x418df0
cmp edx, ecx
je 0x418e8c
movzx eax, byte [edx]
movzx esi, al
test al, al
js 0x418e19
inc edx
jmp 0x418e83
movzx ecx, byte [edx + 1]
and esi, 0x1f
and ecx, 0x3f
cmp al, 0xdf
jbe 0x418e50
movzx ebx, byte [edx + 2]
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
cmp al, 0xf0
jb 0x418e5d
movzx eax, byte [edx + 3]
and esi, 7
shl ebx, 6
add edx, 4
shl esi, 0x12
and eax, 0x3f
or eax, ebx
or esi, eax
jmp 0x418e65
shl esi, 6
add edx, 2
or esi, ecx
mov ecx, dword [ebp - 0x28]
jmp 0x418e83
shl esi, 0xc
add edx, 3
or esi, ebx
mov ecx, dword [ebp - 0x28]
cmp esi, 0xffff
jbe 0x418e83
and esi, 0x3ff
or esi, 0xdc00
mov ebx, esi
jmp 0x418df2
xor ebx, ebx
mov edi, esi
jmp 0x418df2
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x418ea4
push 1
push eax
push dword [ebp - 0x104]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x44]
sub eax, edi
cmp eax, esi
jae 0x418ee9
mov dword [ebp - 0x10], 0x23
lea ecx, [ebp - 0x9c]
mov edx, edi
push esi
call fcn.0042ea70
add esp, 4
mov ecx, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov esi, dword [ebp - 0x164]
lea eax, [esi + esi]
mov dword [ebp - 0x44], ecx
lea ecx, [ecx + edi*2]
push eax
mov ebx, dword [ebp - 0x70]
push ebx
push ecx
call fcn.0042acb0
add esp, 0xc
mov eax, dword [ebp - 0x50]
add edi, esi
mov dword [ebp - 0x94], edi
test eax, eax
je 0x418f1d
add eax, eax
push 2
push eax
push ebx
call fcn.00403510
add esp, 0xc
cmp edi, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x44]
jne 0x418f50
lea ecx, [ebp - 0x9c]
mov byte [ebp - 0x39], 1
mov dword [ebp - 0x10], 0x21
mov dword [ebp - 0xa0], edi
call fcn.0040b0d0
mov edi, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x98]
mov word [eax + edi*2], 0x3d
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x24]
and dword [ebp - 0x104], 0xffffff00
inc edi
mov dword [ebp - 0x94], edi
xor edi, edi
add eax, ecx
mov dword [ebp - 0x28], eax
jmp 0x418f81
xor edi, edi
test si, si
je 0x419420
mov si, 1
test di, di
jne 0x418f76
cmp ecx, eax
je 0x419014
movzx ebx, byte [ecx]
movzx edx, bl
test bl, bl
js 0x418f9f
inc ecx
jmp 0x41900b
movzx eax, byte [ecx + 1]
and edx, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x418fd8
movzx edi, byte [ecx + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x418fe5
movzx eax, byte [ecx + 3]
and edx, 7
shl edi, 6
add ecx, 4
shl edx, 0x12
and eax, 0x3f
or eax, edi
or edx, eax
jmp 0x418fed
shl edx, 6
add ecx, 2
or edx, eax
mov eax, dword [ebp - 0x28]
jmp 0x41900b
shl edx, 0xc
add ecx, 3
or edx, edi
mov eax, dword [ebp - 0x28]
cmp edx, 0xffff
jbe 0x41900b
and edx, 0x3ff
or edx, 0xdc00
mov edi, edx
jmp 0x418f78
xor edi, edi
mov esi, edx
jmp 0x418f78
mov ecx, dword [ebp - 0x58]
mov eax, ecx
shr eax, 8
cmp dword [ebp - 0x40], 0x80000000
mov dword [ebp - 0x13c], eax
je 0x419aca
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x130], ecx
lea ecx, [ebp - 0x9c]
lea edx, [ebp - 0x130]
mov dword [ebp - 0x10], 0x22
mov dword [ebp - 0x12c], eax
mov word [ebp - 0x128], 0
call fcn.0040b310
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x419074
push 1
push eax
push dword [ebp - 0x58]
call fcn.00403510
add esp, 0xc
mov edx, dword [ebp - 0x94]
cmp edx, dword [ebp - 0x9c]
jne 0x4190a4
lea ecx, [ebp - 0x9c]
mov byte [ebp - 0x39], 0
mov dword [ebp - 0x10], 0x21
mov dword [ebp - 0xa0], edx
call fcn.0040b0d0
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x104]
mov word [eax + edx*2], 0
inc edx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x10], 0x20
lea ecx, [ebp - 0xf4]
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x94], edx
lea edx, [ebp - 0x574]
call fcn.004092e0
jmp 0x418d63
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x130]
mov edi, dword [ebp - 0x12c]
test eax, eax
je 0x41910f
add eax, eax
push 2
push eax
push dword [ebp - 0xf0]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], 2
xor ebx, ebx
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x419137
add eax, eax
push 2
push eax
push dword [ebp - 0x48]
call fcn.00403510
add esp, 0xc
test bl, bl
je 0x417adc
jmp 0x417bf9
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x41915c
push 1
push eax
push dword [ebp - 0x104]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x419171
push 1
push eax
push dword [ebp - 0x58]
call fcn.00403510
add esp, 0xc
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x70]
or dword [ebp - 0x30], 2
mov dword [ebp - 0x24], 0x436bb0
test ecx, ecx
je 0x419456
add ecx, ecx
push 2
push ecx
push eax
call fcn.00403510
add esp, 0xc
mov dword [ebp - 0x10], 0x1f
jmp 0x419456
xor edx, edx
xor edi, edi
mov dword [ebp - 0x30], 2
cmp dword [ecx + 0x34], 0x80000000
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x44], edi
jne 0x419659
xor esi, esi
mov ebx, 2
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x58], 0
pxor xmm0, xmm0
mov cl, 1
xor eax, eax
movdqu xmmword [ebp - 0x9c], xmm0
lock cmpxchg byte [0x43d218], cl
jne 0x4197b9
mov eax, dword [0x43d1f4]
movzx ecx, bl
movzx ebx, byte [ebp + 0xc]
shl esi, 8
test eax, 0x7fffffff
jne 0x4197cb
xor eax, eax
or ecx, esi
xor edx, edx
mov dword [ebp - 0x28], ecx
movzx ecx, byte [0x43d219]
mov dword [ebp - 0x144], 0x43d218
mov byte [ebp - 0x140], al
lea eax, [ebp - 0x150]
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x138], 2
mov dword [ebp - 0x10], 0x26
test cl, cl
mov ecx, dword [ebp - 0x78]
setne dl
test bl, bl
mov dword [ebp - 0x148], edx
lea edx, [ebp - 0x138]
cmovne edx, eax
cmp dword [ecx], 6
lea esi, [ecx + 8]
cmovne edx, ecx
cmp dword [ecx + 8], 6
cmove esi, eax
cmp dword [ecx + 0x10], 6
mov dword [ebp - 0x5c], esi
lea esi, [ecx + 0x10]
lea ecx, [ebp - 0x574]
cmove esi, eax
lea eax, [ebp - 0x130]
mov dword [ebp - 0x70], esi
push eax
push 0xfffffffffffffff6
call fcn.0041a730
add esp, 8
movzx eax, byte [ebp - 0x574]
cmp al, 4
jne 0x4194a3
mov ecx, dword [ebp - 0x570]
mov edx, dword [ebp - 0x5c]
lea eax, [ebp - 0x128]
mov dword [ebp - 0x10], 0x27
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x574]
push eax
push 0xfffffffffffffff5
call fcn.0041a730
add esp, 8
movzx eax, byte [ebp - 0x574]
cmp al, 4
jne 0x4194d5
mov ecx, dword [ebp - 0x570]
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x10], 0x28
mov dword [ebp - 0x5c], ecx
lea ecx, [ebp - 0x574]
push eax
push 0xfffffffffffffff4
call fcn.0041a730
add esp, 8
movzx eax, byte [ebp - 0x574]
mov edx, dword [ebp - 0x78]
cmp al, 4
jne 0x4195f8
mov ecx, dword [ebp - 0x570]
cmp dword [ebp - 0x50], 0
pxor xmm0, xmm0
mov dword [ebp - 0xb4], 0
movdqu xmmword [ebp - 0xc4], xmm0
movdqu xmmword [ebp - 0xd4], xmm0
movdqu xmmword [ebp - 0xe4], xmm0
movdqu xmmword [ebp - 0xf4], xmm0
jne 0x41937c
cmp dword [ebp - 0x5c], 0
jne 0x41937c
test ecx, ecx
je 0x41939e
mov eax, dword [ebp - 0x50]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0xc8], 0x100
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xb4], ecx
mov eax, dword [edx + 0x60]
mov dword [ebp - 0x70], ecx
test eax, eax
mov dword [ebp - 0x104], eax
je 0x4197e2
add edx, 0x58
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0xf4], 0x48
mov dword [ebp - 0x10], 0x29
call fcn.0041b500
cmp dword [ebp - 0x6c], 0
mov edi, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x48]
lea ecx, [ebp - 0x574]
je 0x4197f7
mov eax, dword [ebp - 0x4c]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], 2
jmp 0x419991
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x419410
push 1
push eax
push dword [ebp - 0x2c]
call fcn.00403510
add esp, 0xc
mov byte [ebp - 0x68], 2
mov dword [ebp - 0x64], 0x436c00
jmp 0x417ac7
mov eax, dword [ebp - 0x40]
mov esi, 2
mov dword [ebp - 0x24], 0x436bb0
test eax, eax
je 0x419441
push 1
push eax
push dword [ebp - 0x58]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x10], 0x1f
shl eax, 8
or eax, esi
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x574]
mov byte [ebp - 0x35], 0
mov dword [ebp - 0x10], 0x1f
call fcn.00407360
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x419489
add eax, eax
push 2
push eax
push dword [ebp - 0x98]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x24]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], 2
jmp 0x419a69
movzx ecx, byte [ebp - 0x571]
mov edx, dword [ebp - 0x4c]
movzx edi, word [ebp - 0x573]
mov esi, dword [ebp - 0x570]
mov ebx, dword [ebp - 0x24]
mov byte [edx + 3], cl
mov word [edx + 1], di
mov byte [edx], al
mov dword [edx + 4], esi
mov dword [edx + 8], 2
jmp 0x4199c4
movzx ecx, byte [ebp - 0x571]
mov edx, dword [ebp - 0x4c]
movzx edi, word [ebp - 0x573]
mov esi, dword [ebp - 0x570]
mov byte [edx + 3], cl
mov word [edx + 1], di
mov byte [edx], al
mov dword [edx + 4], esi
mov dword [edx + 8], 2
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebp - 0x24]
jmp 0x4199c4
lea ecx, [ebp - 0x574]
mov byte [ebp - 0x35], 0
mov dword [ebp - 0x10], 0x1f
call fcn.00407360
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x9c]
jne 0x4195cc
lea ecx, [ebp - 0x9c]
mov byte [ebp - 0x35], 0
call fcn.0040b0d0
mov edi, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xa0]
mov word [edi + ecx*2], 0
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x98]
cmp edx, 0x80000000
mov dword [ebp - 0x30], eax
jne 0x419643
inc ecx
mov dword [ebp - 0x24], ecx
jmp 0x419489
movzx ecx, byte [ebp - 0x571]
mov edx, dword [ebp - 0x4c]
movzx edi, word [ebp - 0x573]
mov esi, dword [ebp - 0x570]
mov byte [edx + 3], cl
mov word [edx + 1], di
mov byte [edx], al
mov dword [edx + 4], esi
mov esi, 2
mov dword [edx + 8], 2
jmp 0x4199a0
mov ecx, dword [ebp - 0x78]
cmp dword [ecx + 0x34], 0x80000000
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x44], edi
je 0x4191c2
mov edx, dword [ecx + 0x38]
mov ecx, dword [ecx + 0x3c]
xor ebx, ebx
add ecx, edx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x28], ecx
jmp 0x419676
xor ebx, ebx
test di, di
je 0x419707
mov di, 1
test bx, bx
jne 0x41966b
cmp edx, ecx
je 0x419732
movzx eax, byte [edx]
movzx esi, al
test al, al
js 0x419694
inc edx
jmp 0x4196fe
movzx ecx, byte [edx + 1]
and esi, 0x1f
and ecx, 0x3f
cmp al, 0xdf
jbe 0x4196cb
movzx ebx, byte [edx + 2]
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
cmp al, 0xf0
jb 0x4196d8
movzx eax, byte [edx + 3]
and esi, 7
shl ebx, 6
add edx, 4
shl esi, 0x12
and eax, 0x3f
or eax, ebx
or esi, eax
jmp 0x4196e0
shl esi, 6
add edx, 2
or esi, ecx
mov ecx, dword [ebp - 0x28]
jmp 0x4196fe
shl esi, 0xc
add edx, 3
or esi, ebx
mov ecx, dword [ebp - 0x28]
cmp esi, 0xffff
jbe 0x4196fe
and esi, 0x3ff
or esi, 0xdc00
mov ebx, esi
jmp 0x41966d
xor ebx, ebx
mov edi, esi
jmp 0x41966d
mov edx, 0x436bb0
mov ebx, 2
xor esi, esi
mov ecx, dword [ebp - 0x4c]
movzx eax, bl
mov ebx, dword [ebp - 0x24]
shl esi, 8
or eax, esi
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], 2
jmp 0x419a55
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x574]
mov dword [ebp - 0x10], 0x24
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], ecx
lea ecx, [ebp - 0xf4]
mov word [ebp - 0x56c], 0
call fcn.0040b480
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xec]
cmp edx, eax
jne 0x419790
lea ecx, [ebp - 0xf4]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x10], 0x25
call fcn.0040b0d0
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0xf0]
mov esi, ebx
mov word [ebx + edx*2], 0
shr esi, 8
cmp eax, 0x80000000
jne 0x4197ae
inc edx
jmp 0x419713
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x58], ebx
jmp 0x4191d7
push 0x43d218
call fcn.0042ecd0
add esp, 4
jmp 0x4191f5
mov edi, ecx
call fcn.0042ec80
mov ecx, edi
xor al, 1
mov dword [ebp - 0x10], 0x26
jmp 0x419211
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0xf4], 0x44
lea ecx, [ebp - 0xf4]
jmp 0x41981f
or dword [ebp - 0x16c], 0x80000
lea eax, [ebp - 0xf4]
push 0x44
push eax
push ecx
call fcn.0042acb0
lea ecx, [ebp - 0x574]
add esp, 0xc
mov dword [ebp - 0x530], edi
lea eax, [ebp - 0x9c]
push eax
push ecx
push dword [ebp - 0x58]
push dword [ebp - 0x44]
push dword [ebp - 0x16c]
push 1
push 0
push 0
push dword [ebp - 0xfc]
push dword [ebp - 0x74]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x41995b
mov eax, dword [ebp - 0x4c]
movsd xmm1, qword [ebp - 0x128]
cmp dword [ebp - 0x104], 0
movsd xmm0, qword [ebp - 0x120]
movsd xmm2, qword [ebp - 0x130]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [ebp - 0x9c]
movsd qword [eax + 0x18], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax], xmm1
je 0x419898
mov ecx, edi
mov edx, esi
call fcn.00407b90
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x70]
call esi
push dword [ebp - 0x5c]
call esi
push dword [ebp - 0x50]
call esi
cmp dword [ebp - 0x138], 4
jb 0x4198c2
push dword [ebp - 0x134]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x148]
call fcn.00407490
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4198e4
add eax, eax
push 2
push eax
push dword [ebp - 0x28]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x4198fb
add eax, eax
push 2
push eax
push dword [ebp - 0x30]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x100]
test eax, eax
je 0x419918
add eax, eax
push 2
push eax
push dword [ebp - 0xfc]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x41992f
add eax, eax
push 2
push eax
push dword [ebp - 0x74]
call fcn.00403510
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x168]
test ecx, ecx
sete al
or dl, al
cmp dl, 1
je 0x417bf9
add ecx, ecx
push 2
push ecx
push ebx
call fcn.00403510
add esp, 0xc
jmp 0x417bf9
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, word [ebp - 0x6c]
mov edx, dword [ebp - 0x4c]
cmp dword [ebp - 0x104], 0
mov word [edx + 1], cx
mov ch, byte [ebp - 0x6a]
mov byte [edx + 3], ch
mov byte [edx], 0
mov dword [edx + 4], eax
mov dword [edx + 8], 2
je 0x419991
mov ecx, edi
mov edx, esi
call fcn.00407b90
push dword [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x138]
mov ebx, dword [ebp - 0x24]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x5c]
call edi
push dword [ebp - 0x50]
call edi
cmp esi, 4
jb 0x4199c4
push dword [ebp - 0x134]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x130], 0
je 0x4199d9
push dword [ebp - 0x12c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x128], 0
je 0x4199ee
push dword [ebp - 0x124]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x120], 0
je 0x419a03
push dword [ebp - 0x11c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movzx eax, byte [ebp - 0x140]
mov esi, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x148], 0
test al, al
jne 0x419a2e
mov eax, dword [0x43d1f4]
test eax, 0x7fffffff
jne 0x419ab1
xor eax, eax
xchg byte [esi], al
cmp al, 2
jne 0x419a40
push esi
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x419a55
add eax, eax
push 2
push eax
push ecx
call fcn.00403510
add esp, 0xc
test ebx, ebx
je 0x419a69
add ebx, ebx
push 2
push ebx
push dword [ebp - 0x30]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x100]
test eax, eax
je 0x419a86
add eax, eax
push 2
push eax
push dword [ebp - 0xfc]
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x419a9d
add eax, eax
push 2
push eax
push dword [ebp - 0x74]
call fcn.00403510
add esp, 0xc
cmp byte [ebp - 0xb0], 0
mov bl, 1
je 0x417bf9
jmp 0x419120
call fcn.0042ec80
mov ecx, dword [ebp - 0x28]
test al, al
jne 0x419a2e
mov byte [esi + 1], 1
jmp 0x419a2e
movzx esi, cl
jmp 0x419441
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [ebp - 0x130], 0
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x130]
mov dword [ebp - 0xf4], 0x436b4c
mov dword [ebp - 0xf0], 1
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0x10], 0x1b
mov dword [ebp - 0x9c], eax
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x98], 0x40cc70
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], 1
push 0x436b80
lea eax, [ebp - 0xf4]
push eax
call fcn.0042f5a0
add esp, 8
jmp 0x419ce5
xor eax, eax
jmp 0x419b93
mov eax, 1
jmp 0x419b5c
xor eax, eax
push dword [ebp - 0x28]
push eax
call fcn.0042f4a0
add esp, 8
jmp 0x419ce5
mov eax, 2
jmp 0x419b76
xor eax, eax
mov dword [ebp - 0x10], 4
push dword [ebp - 0x24]
push eax
call fcn.0042f4a0
add esp, 8
jmp 0x419ce5
mov eax, 1
mov byte [ebp - 0x52], 1
mov dword [ebp - 0x10], 2
push ebx
push eax
call fcn.0042f4a0
add esp, 8
jmp 0x419ce5
mov dword [ebp - 0x10], 3
push 0x434f4c
push 0x21
push str.assertion_failed:_self.height___0
call fcn.0042f670
add esp, 0xc
jmp 0x419ce5
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
push 4
push 1
call fcn.0042f4a0
add esp, 8
jmp 0x419ce5
mov dword [ebp - 0x10], 0x10
push 0x436fc4
push 0x28
push str.internal_error:_entered_unreachable_code4NC
call fcn.0042f670
add esp, 0xc
jmp 0x419ce5
mov dword [ebp - 0x10], 0xd
push 0x436fc4
push 0x28
push str.internal_error:_entered_unreachable_code4NC
call fcn.0042f670
add esp, 0xc
jmp 0x419ce5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [ebp - 0xf4], 0
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0xf4]
mov dword [ebp - str.failure_getting_env_string_from_OS:_pjC], 0x436a94
mov dword [ebp - 0x570], 1
mov dword [ebp - 0x564], 0
mov dword [ebp - 0x10], 8
mov dword [ebp - 0x130], eax
lea eax, [ebp - 0x130]
mov dword [ebp - 0x12c], 0x40cc70
mov dword [ebp - 0x56c], eax
mov dword [ebp - 0x568], 1
lea eax, [ebp - 0x574]
push 0x436a9c
push eax
call fcn.0042f5a0
add esp, 8
jmp 0x419ce5
xor eax, eax
jmp 0x419cac
mov eax, 1
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
push dword [ebp - 0x28]
push eax
call fcn.0042f4a0
add esp, 8
jmp 0x419ce5
push 0x436fb4
push eax
push edi
call fcn.0042f980
add esp, 0xc
jmp 0x419ce5
push 0x436fb4
push ecx
push eax
call fcn.0042f980
add esp, 0xc
ud2