Function at 0x4ab180
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, 0x4f8
call 0x4ab191
pop eax
mov esi, edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x64], eax
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x18], eax
movzx eax, byte [edx + 0x34]
test al, al
jne 0x4ab1c7
cmp dword [ebp - 0x18], 0
jne 0x4ab1c7
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x28], 0
jmp 0x4abc76
test al, al
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc0], 0
jne 0x4ab45e
call sub.kernel32.dll_GetEnvironmentStringsW
test eax, eax
je 0x4ae0a2
mov edi, eax
mov dword [ebp - 0x1c], eax
jmp 0x4ab203
mov edi, dword [ebp - 0x14]
cmp word [edi], 0
je 0x4ab453
mov edx, edi
mov esi, 0x7ffffffe
mov ebx, 0xfffffffd
mov ecx, 0xfffffffe
nop
inc esi
inc ebx
cmp word [edi], 0
mov eax, ecx
lea edi, [edi + 2]
lea ecx, [ecx + 2]
jne 0x4ab220
add esi, 0x80000001
mov dword [ebp - 0x14], edi
cmp esi, 1
je 0x4ab200
test esi, esi
je 0x4adffa
lea ecx, [edx + 4]
xor edi, edi
nop dword [eax + eax]
cmp word [ecx - 2], 0x3d
je 0x4ab270
inc edi
add ecx, 2
add eax, 0xfffffffe
jne 0x4ab250
jmp 0x4ab200
lea eax, [edi + 1]
cmp edi, esi
mov dword [ebp - 0x2c], ecx
mov ecx, edi
jae 0x4ae013
lea ecx, [ebp - 0x84]
push eax
call fcn.00486630
add esp, 4
lea ecx, [edi + 2]
cmp esi, ecx
jb 0x4ae029
sub ebx, edi
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0xbc]
push ebx
call fcn.00486630
add esp, 4
mov eax, dword [ebp - 0x7c]
lea ecx, [ebp - 0x77]
movsd xmm0, qword [ebp - 0x84]
movsd xmm1, qword [ebp - 0xb4]
movzx ebx, byte [ebp - 0x78]
mov dword [ebp - 0xe8], eax
movzx eax, word [ecx]
movsd qword [ebp - 0xf0], xmm0
movsd xmm0, qword [ebp - 0xbc]
cmp bl, 2
mov word [ebp - 0x504], ax
movzx eax, byte [ecx + 2]
mov byte [ebp - 0x502], al
lea eax, [ebp - 0x4f8]
movsd qword [eax - 1], xmm1
movsd qword [eax - 9], xmm0
movsd xmm0, qword [ebp - 0x504]
movsd xmm1, qword [ebp - 0x4fc]
mov eax, dword [ebp - 0x4f5]
movsd qword [ebp - 0x58], xmm1
movsd qword [ebp - 0x60], xmm0
mov dword [ebp - 0x51], eax
je 0x4ab453
mov eax, dword [ebp - 0xe8]
movsd xmm0, qword [ebp - 0xf0]
lea ecx, [ebp - 0x67]
lea edi, [ebp - 0x5d]
movsd xmm1, qword [edi + 8]
mov dword [ebp - 0x6c], eax
movzx eax, byte [ebp - 0x5e]
movsd qword [ebp - 0x74], xmm0
mov byte [ebp - 0x68], bl
movsd xmm0, qword [edi]
movsd qword [ebp - 0xd0], xmm1
mov byte [ecx + 2], al
movzx eax, word [ebp - 0x60]
movsd qword [ebp - 0xd8], xmm0
mov word [ecx], ax
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x6c]
add ecx, eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], ecx
mov word [ebp - 0xb4], 0
lea esi, [ebp - 0x84]
lea edx, [ebp - 0xbc]
mov ecx, esi
call fcn.004ae610
mov eax, dword [ebp - 0xe8]
lea ecx, [ebp - 0x4f8]
movsd xmm0, qword [ebp - 0xf0]
movsd xmm1, qword [edi + 8]
mov dword [ecx + 8], eax
movzx eax, byte [ebp - 0x5e]
movsd qword [ecx], xmm0
mov byte [ebp - 0x4ec], bl
movsd xmm0, qword [ebp - 0x84]
movsd qword [ebp - 0xb4], xmm1
mov byte [ecx + 0xf], al
movzx eax, word [ebp - 0x60]
mov word [ecx + 0xd], ax
mov eax, dword [ebp - 0x7c]
movsd qword [ebp - 0x504], xmm0
movsd xmm0, qword [edi]
mov dword [ebp - 0x4fc], eax
movsd qword [ebp - 0xbc], xmm0
lea edx, [ebp - 0xc8]
lea eax, [ebp - 0xbc]
mov ecx, esi
push eax
lea eax, [ebp - 0x504]
push eax
call fcn.004aee20
add esp, 8
cmp byte [ebp - 0x78], 2
mov edi, dword [ebp - 0x14]
je 0x4ab203
cmp dword [ebp - 0x80], 0
je 0x4ab203
push dword [ebp - 0x84]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
jmp 0x4ab203
push dword [ebp - 0x1c]
call sub.kernel32.dll_FreeEnvironmentStringsW
mov esi, dword [ebp - 0x34]
mov edi, dword [esi + 0x28]
mov edx, dword [ebp - 0x18]
mov ecx, dword [esi + 0x2c]
xor eax, eax
test edi, edi
setne al
cmove edx, edi
xor ebx, ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], edx
jmp 0x4ab488
xor edi, edi
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x24]
cmp dword [ebp - 0x18], 0
je 0x4abaa1
cmp dword [ebp - 0x2c], 0
je 0x4ab4c0
test ebx, ebx
jne 0x4ab4c0
mov ebx, edi
test ecx, ecx
mov dword [ebp - 0x2c], 1
je 0x4ab4b9
nop dword [eax]
mov ebx, dword [ebx + 0x1ec]
dec ecx
jne 0x4ab4b0
xor ecx, ecx
xor edi, edi
jmp 0x4ab4ca
cmp dword [ebp - 0x2c], 0
je 0x4adf8e
movzx eax, word [ebx + 0x1ea]
mov edx, ebx
mov esi, ecx
cmp ecx, eax
jb 0x4ab501
nop dword [eax]
mov eax, dword [edx + 0xb0]
test eax, eax
je 0x4add70
movzx esi, word [edx + 0x1e8]
inc edi
mov edx, eax
cmp si, word [eax + 0x1ea]
jae 0x4ab4e0
test edi, edi
je 0x4ab530
mov ebx, dword [edx + esi*4 + 0x1f0]
xor ecx, ecx
dec edi
je 0x4ab535
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ebx, dword [ebx + 0x1ec]
dec edi
jne 0x4ab520
jmp 0x4ab535
lea ecx, [esi + 1]
mov ebx, edx
lea eax, [esi + esi*8]
dec dword [ebp - 0x18]
lea eax, [eax + eax*2]
add eax, esi
shl esi, 4
cmp byte [edx + esi + 0xc], 2
lea eax, [edx + eax + 0xb4]
jne 0x4ab5d0
mov edx, dword [ebp - 0xc8]
mov esi, dword [ebp - 0x34]
xor edi, edi
test edx, edx
je 0x4ab488
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0xc4]
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x14], edx
push dword [eax + 8]
push dword [eax]
push ebx
call fcn.004ae800
add esp, 0xc
cmp dword [ebp - 0x84], 0
jne 0x4ab482
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x78]
mov byte [ebp - 0xf0], 0
test ecx, ecx
je 0x4ab828
nop dword [eax]
mov eax, dword [eax + edx*4 + 0x1ec]
dec ecx
je 0x4ab778
movzx edx, word [eax + 0x1ea]
jmp 0x4ab5b0
mov edi, dword [eax + 0xc]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], edi
mov edi, dword [eax + 0x14]
test edi, edi
je 0x4ab60f
js 0x4adfdf
movzx eax, byte [0x5c91e8]
mov ecx, edi
mov edx, 1
call fcn.0041aa20
mov ebx, edi
mov edi, eax
test eax, eax
jne 0x4ab616
jmp 0x4adfe9
mov ebx, edi
mov edi, 1
push ebx
push dword [ebp - 0x20]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x28]
movzx eax, byte [ecx + 0x18]
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov byte [ebp - 0x54], al
mov edi, dword [ecx + 8]
mov eax, dword [ecx]
test edi, edi
mov dword [ebp - 0x20], eax
je 0x4ab688
xor edx, edx
cmp edi, 0x40000000
setb al
jae 0x4adfaa
mov dl, al
lea ecx, [edi + edi]
add edx, edx
test ecx, ecx
js 0x4adfaa
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], edx
je 0x4ab678
movzx eax, byte [0x5c91e8]
call fcn.0041aa20
mov edx, eax
mov eax, dword [ebp - 0x14]
test edx, edx
je 0x4adfb4
mov ebx, dword [ebp - 0x28]
jmp 0x4ab692
mov eax, dword [ebp - 0x14]
mov edx, 2
xor ebx, ebx
add eax, esi
mov dword [ebp - 0x14], eax
push ebx
push dword [ebp - 0x20]
push edx
mov ebx, edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x14]
add esp, 0xc
movsd xmm0, qword [ebp - 0x60]
movsd xmm1, qword [ebp - 0x58]
lea eax, [ebp - 0x4f8]
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
mov dword [ebp - 0x504], ebx
mov dword [ebp - 0x500], edi
mov dword [ebp - 0x4fc], edi
mov ebx, dword [ecx + 8]
mov esi, dword [ecx]
test ebx, ebx
je 0x4ab701
js 0x4adfc4
movzx eax, byte [0x5c91e8]
mov ecx, ebx
mov edx, 1
call fcn.0041aa20
mov edi, eax
test eax, eax
jne 0x4ab706
jmp 0x4adfce
mov edi, 1
push ebx
push esi
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + 0xc]
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov byte [ebp - 0x54], al
lea edx, [ebp - 0xc8]
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x504]
push eax
call fcn.004aee20
add esp, 8
cmp byte [ebp - 0xb0], 2
mov esi, dword [ebp - 0x34]
je 0x4ab480
cmp dword [ebp - 0xb8], 0
je 0x4ab480
push dword [ebp - 0xbc]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
jmp 0x4ab480
movzx ecx, word [eax + 0x1ea]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], 0
dec ecx
mov dword [ebp - 0xd0], ecx
lea edx, [ebp - 0xd8]
lea eax, [ebp - 0xf0]
lea ecx, [ebp - 0x504]
push eax
call fcn.004ae920
add esp, 4
movsd xmm2, qword [ebp - 0x4ec]
movsd xmm1, qword [ebp - 0x4f4]
mov eax, dword [ebp - 0x4dc]
movsd xmm0, qword [ebp - 0x4e4]
mov edx, dword [ebp - 0x4d8]
movsd qword [ebp - 0xa4], xmm2
movsd qword [ebp - 0xac], xmm1
movsd xmm2, qword [ebp - 0x504]
movsd xmm1, qword [ebp - 0x4fc]
mov dword [ebp - 0x94], eax
movsd qword [ebp - 0x9c], xmm0
mov eax, dword [ebp - 0x4d0]
movsd qword [ebp - 0xb4], xmm1
movsd qword [ebp - 0xbc], xmm2
movzx ecx, word [edx + 0x1ea]
cmp eax, ecx
jae 0x4ab852
mov ecx, edx
jmp 0x4ab883
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], edx
lea edx, [ebp - 0x60]
lea eax, [ebp - 0xf0]
lea ecx, [ebp - 0x504]
push eax
call fcn.004ae920
add esp, 4
jmp 0x4ab980
mov esi, dword [ebp - 0x4d4]
nop dword [eax + eax]
mov ecx, dword [edx + 0xb0]
test ecx, ecx
je 0x4ab87f
movzx eax, word [edx + 0x1e8]
inc esi
mov edx, ecx
cmp ax, word [ecx + 0x1ea]
jae 0x4ab860
jmp 0x4ab883
xor ecx, ecx
mov eax, esi
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
shl eax, 4
mov esi, dword [ecx + edx + 0xcc]
mov dword [ebp - 0x48], esi
mov esi, dword [ebp - 0xa4]
movsd xmm0, qword [ecx + edx + 0xc4]
movsd qword [ebp - 0x50], xmm0
movsd xmm0, qword [ecx + edx + 0xb4]
movsd xmm1, qword [ecx + edx + 0xbc]
movsd qword [ebp - 0x58], xmm1
movsd qword [ebp - 0x60], xmm0
mov dword [ecx + edx + 0xcc], esi
lea esi, [ebp - 0xa0]
movsd xmm0, qword [ebp - 0xac]
movsd qword [ecx + edx + 0xc4], xmm0
movsd xmm0, qword [ebp - 0xbc]
movsd xmm1, qword [ebp - 0xb4]
movsd qword [ecx + edx + 0xbc], xmm1
movsd qword [ecx + edx + 0xb4], xmm0
lea edx, [ebp - 0x44]
movsd xmm0, qword [ecx + eax]
movsd xmm1, qword [ecx + eax + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [ebp - 0x34]
movsd qword [ecx + eax], xmm0
movsd qword [ecx + eax + 8], xmm1
movsd xmm2, qword [ebp - 0x48]
movsd xmm1, qword [ebp - 0x50]
mov eax, dword [ebp - 0x38]
movsd xmm0, qword [ebp - 0x40]
movsd qword [ebp - 0x4ec], xmm2
movsd qword [ebp - 0x4f4], xmm1
movsd xmm2, qword [ebp - 0x60]
movsd xmm1, qword [ebp - 0x58]
mov dword [ebp - 0x4dc], eax
movsd qword [ebp - 0x4e4], xmm0
movsd qword [ebp - 0x4fc], xmm1
movsd qword [ebp - 0x504], xmm2
movsd xmm2, qword [ebp - 0x4ec]
movsd xmm1, qword [ebp - 0x4f4]
mov eax, dword [ebp - 0x4dc]
movsd xmm0, qword [ebp - 0x4e4]
dec dword [ebp - 0xc0]
cmp byte [ebp - 0xf0], 0
movsd qword [ebp - 0x48], xmm2
movsd qword [ebp - 0x50], xmm1
movsd xmm2, qword [ebp - 0x504]
movsd xmm1, qword [ebp - 0x4fc]
mov dword [ebp - 0x38], eax
movsd qword [ebp - 0x40], xmm0
movsd qword [ebp - 0x58], xmm1
movsd qword [ebp - 0x60], xmm2
je 0x4aba0f
test ebx, ebx
je 0x4ae03d
mov ecx, dword [ebp - 0x14]
dec ebx
mov eax, dword [ecx + 0x1ec]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], ebx
mov dword [eax + 0xb0], 0
push ecx
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp byte [ebp - 0x48], 2
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x24]
je 0x4ab488
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
cmp dword [ebp - 0x50], 0
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x28], eax
mov ah, byte [ebp - 0x38]
mov byte [ebp - 0x14], ah
je 0x4aba57
push dword [ebp - 0x54]
push 0
push dword [0x5c9128]
mov ebx, edx
call sub.kernel32.dll_HeapFree
mov edx, ebx
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
test esi, esi
je 0x4aba6f
push edx
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
cmp byte [ebp - 0x14], 2
mov esi, dword [ebp - 0x34]
je 0x4ab488
cmp dword [ebp - 0x28], 0
je 0x4ab488
push dword [ebp - 0x20]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
jmp 0x4ab488
mov eax, dword [ebp - 0xc0]
movsd xmm0, qword [ebp - 0xc8]
mov dword [ebp - 0xf4], eax
movsd qword [ebp - 0xfc], xmm0
mov dword [ebp - 0x100], 1
movzx eax, byte [0x5c91e8]
mov ecx, 4
mov edx, 1
mov edi, 4
call fcn.0041aa20
test eax, eax
je 0x4ae059
mov ecx, eax
mov dword [eax], 0x48544150
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], 4
mov dword [ebp - 0x58], 4
mov byte [ebp - 0x54], 0
mov dword [ebp - 0xbc], eax
add ecx, 4
mov dword [ebp - 0xb8], ecx
mov word [ebp - 0xb4], 0
lea ecx, [ebp - 0x84]
lea edx, [ebp - 0xbc]
call fcn.004ae610
movsd xmm1, qword [ebp - 0x58]
movsd xmm0, qword [ebp - 0x60]
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0xfc]
movsd qword [ebp - 0x4f0], xmm1
movsd xmm1, qword [ebp - 0x84]
movsd qword [ebp - 0x4f8], xmm0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x4fc], eax
test edx, edx
movsd qword [ebp - 0x504], xmm1
mov eax, dword [ebp - 0x504]
mov dword [ebp - 0x18], eax
je 0x4abc29
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], eax
movzx esi, word [edx + 0x1ea]
lea ecx, [edx + 0xb4]
mov ebx, 0xffffffff
mov dword [ebp - 0x1c], edx
lea eax, [esi + esi*8]
mov dword [ebp - 0x20], esi
lea edi, [eax + eax*2]
add edi, esi
lea esi, [edx - 8]
test edi, edi
je 0x4abbf0
lea eax, [ecx + 0x1c]
mov dword [ebp - 0x14], eax
push 1
push dword [ecx + 8]
push dword [ecx]
push dword [ebp - 0x2c]
push dword [ebp - 0x18]
call sub.kernel32.dll_CompareStringOrdinal
mov ecx, dword [ebp - 0x14]
add edi, 0xffffffe4
add esi, 0x10
inc ebx
cmp eax, 3
je 0x4abbb0
cmp eax, 1
jne 0x4abc10
jmp 0x4abbf3
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x34]
sub eax, 1
jb 0x4abc30
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov edx, dword [edx + ebx*4 + 0x1ec]
jmp 0x4abb8d
cmp eax, 2
jne 0x4adf32
cmp dword [ebp - 0x1c], 0
je 0x4abc3b
mov eax, dword [esi - 8]
mov edi, dword [esi]
mov dword [ebp - 0x28], eax
jmp 0x4abc3b
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x4f4], 0
jne 0x4abc47
jmp 0x4abc5a
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x4f4], 0
je 0x4abc5a
push dword [ebp - 0x4f8]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x500], 0
mov dword [ebp - 0x1c], edi
je 0x4abc76
push dword [ebp - 0x18]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov edi, dword [esi + 0x20]
test edi, edi
je 0x4abcaa
mov edx, dword [esi + 0x18]
mov ecx, 0x4b0160
cmp edi, 4
jb 0x4abc98
cmp dword [edx], 0x5c3f5c5c
mov eax, 0x4b0150
cmove ecx, eax
movzx ebx, byte [edi + edx - 1]
mov dword [ebp - 0x14], edx
push ebx
call ecx
add esp, 4
test al, al
je 0x4abd27
mov byte [ebp - 0x70], 2
mov dword [ebp - 0x6c], 0x56c150
mov ecx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x10]
mov dword [eax], ecx
mov dword [eax + 4], edi
mov dword [eax + 8], 2
cmp dword [ebp - 0x100], 0
je 0x4abdc7
mov ecx, dword [ebp - 0xfc]
test ecx, ecx
je 0x4abda6
mov edx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x500], 0
mov dword [ebp - 0x4fc], ecx
mov dword [ebp - 0x4f8], edx
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4ec], ecx
mov ecx, 1
mov dword [ebp - 0x4e8], edx
jmp 0x4abdaa
xor eax, eax
cmp edi, 3
mov ecx, 0
jbe 0x4abdd4
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [edi + ecx - 4]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x2e
jne 0x4abdd2
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ecx + edi - 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x4abdd2
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ecx + edi - 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x78
jne 0x4abdd2
mov ecx, ebx
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, bl
cmp cl, 0x65
sete cl
jmp 0x4abdd4
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x504], ecx
mov dword [ebp - 0x4f4], ecx
mov dword [ebp - 0x4e4], eax
lea ecx, [ebp - 0x504]
call fcn.004b0820
add esp, 0x4f8
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
mov edx, dword [ebp - 0x14]
add edx, edi
mov dword [ebp - 0x18], edx
nop dword [eax]
cmp edi, eax
je 0x4abe4f
mov edx, dword [ebp - 0x14]
movzx edx, byte [edx + eax]
cmp edx, 0x2f
je 0x4abdf6
inc eax
cmp edx, 0x5c
jne 0x4abde0
test cl, cl
je 0x4abeff
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x504]
push edi
call fcn.004854f0
add esp, 4
mov edx, dword [ebp - 0x504]
mov eax, dword [ebp - 0x500]
mov ecx, dword [ebp - 0x4fc]
test edx, edx
je 0x4abfb2
mov dword [ebp - 0x504], edx
mov dword [ebp - 0x500], eax
mov dword [ebp - 0x4fc], ecx
lea ecx, [ebp - 0x74]
lea edx, [ebp - 0x504]
call fcn.004b02b0
jmp 0x4ac0c8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], edi
xor edi, edi
jmp 0x4abe6b
xor edi, edi
test cx, cx
je 0x4abf9f
mov cx, 1
test di, di
jne 0x4abe60
cmp eax, dword [ebp - 0x18]
je 0x4ac05f
movzx edx, byte [eax]
test dl, dl
js 0x4abe87
inc eax
jmp 0x4abed4
movzx esi, byte [eax + 1]
mov edi, edx
and edi, 0x1f
and esi, 0x3f
cmp dl, 0xdf
jbe 0x4abeca
movzx ebx, byte [eax + 2]
shl esi, 6
and ebx, 0x3f
or ebx, esi
cmp dl, 0xf0
jb 0x4abeda
movzx edx, byte [eax + 3]
and edi, 7
shl ebx, 6
add eax, 4
shl edi, 0x12
and edx, 0x3f
or edx, ebx
or edx, edi
cmp edx, 0xffff
jbe 0x4abed4
jmp 0x4abeec
shl edi, 6
add eax, 2
or edi, esi
mov edx, edi
xor edi, edi
mov ecx, edx
jmp 0x4abe62
shl edi, 0xc
add eax, 3
or ebx, edi
mov edx, ebx
cmp edx, 0xffff
jbe 0x4abed4
and edx, 0x3ff
or edx, 0xdc00
mov edi, edx
jmp 0x4abe62
test edi, edi
js 0x4ae10a
movzx eax, byte [0x5c91e8]
mov ecx, edi
mov edx, 1
call fcn.0041aa20
test eax, eax
je 0x4ae059
mov esi, eax
push edi
push dword [ebp - 0x14]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [ebp - 0x504], esi
mov dword [ebp - 0x500], edi
mov dword [ebp - 0x4fc], edi
mov byte [ebp - 0x4f8], 0
lea esi, [ebp - 0x504]
mov edx, str..exeprogram_not_found
mov ecx, esi
push 4
call fcn.004a5e40
add esp, 4
mov eax, dword [ebp - 0x500]
mov esi, dword [ebp - 0x504]
mov ebx, dword [ebp - 0x4fc]
mov dword [ebp - 0x2c], eax
mov edx, esi
lea ecx, [ebp - 0x60]
push ebx
call fcn.004b0180
add esp, 4
cmp dword [ebp - 0x60], 0
je 0x4abfc4
mov eax, dword [ebp - 0x58]
movsd xmm0, qword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
movsd qword [ebp - 0x74], xmm0
jmp 0x4ac0b1
mov dword [ebp - 0x70], 2
mov dword [ebp - 0x6c], 0x56c100
jmp 0x4abcb5
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x74], 0
jmp 0x4ac0c8
mov ecx, esi
mov edx, ebx
call fcn.004aac20
test eax, eax
je 0x4ac016
mov edi, edx
cmp edx, 2
jne 0x4abfe8
movzx edx, word [eax]
mov ecx, 2
cmp edx, 0x2e2e
je 0x4ac00d
mov edx, edi
nop word [eax + eax]
test edx, edx
je 0x4ac00b
mov ecx, edx
dec edx
cmp byte [eax + ecx - 1], 0x2e
jne 0x4abff0
cmp edi, ecx
jb 0x4ae13b
test edx, edx
cmovne edi, edx
mov ecx, edi
add eax, ecx
sub eax, esi
cmp ebx, eax
cmovae ebx, eax
mov edx, esi
lea ecx, [ebp - 0x504]
push ebx
call fcn.004854f0
add esp, 4
mov edx, dword [ebp - 0x504]
mov eax, dword [ebp - 0x500]
mov ecx, dword [ebp - 0x4fc]
test edx, edx
je 0x4ac0a4
mov dword [ebp - 0x504], edx
mov dword [ebp - 0x500], eax
mov dword [ebp - 0x4fc], ecx
lea ecx, [ebp - 0x74]
lea edx, [ebp - 0x504]
call fcn.004b02b0
jmp 0x4ac0b1
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
cmp esi, 7
ja 0x4ac08b
mov ecx, dword [ebp - 0x14]
xor eax, eax
nop
cmp byte [ecx + eax], 0x2e
je 0x4acaed
inc eax
cmp esi, eax
jne 0x4ac070
mov dword [ebp - 0x30], 0
jmp 0x4acaf4
mov edx, dword [ebp - 0x14]
mov ecx, 0x2e
push esi
call fcn.0044b000
add esp, 4
mov dword [ebp - 0x30], eax
jmp 0x4acaf4
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x74], 0
cmp dword [ebp - 0x2c], 0
je 0x4ac0c5
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x6c]
test eax, eax
mov dword [ebp - 0x2c], ecx
je 0x4ac20d
mov dword [ebp - 0x1c], eax
cmp edi, 5
jb 0x4ac0fe
mov eax, dword [ebp - 0x1c]
cmp word [eax + edi*2 - 0xa], 0x2e
jne 0x4ac0fe
mov eax, dword [ebp - 0x1c]
cmp word [eax + edi*2 - 2], 0
je 0x4ac90e
mov eax, esi
mov ebx, dword [esi + 0x48]
mov esi, dword [esi + 0x50]
mov dword [ebp - 0x60], 2
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
movzx eax, byte [eax + 0x59]
mov byte [ebp - 0x24], al
lea ecx, [ebp - 0x60]
xor edx, edx
call fcn.004858b0
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x18]
mov word [eax + ecx*2], 0x22
mov eax, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x504], eax
mov dword [ebp - 0x500], edi
mov word [ebp - 0x4fc], 0
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x504]
call fcn.00485760
mov edx, dword [ebp - 0x58]
cmp edx, dword [ebp - 0x5c]
jne 0x4ac178
lea ecx, [ebp - 0x60]
call fcn.004858b0
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x60]
mov word [eax + edx*2], 0x22
inc edx
test esi, esi
mov dword [ebp - 0x58], edx
je 0x4ac215
shl esi, 2
lea edi, [esi + esi*4]
movzx esi, byte [ebp - 0x24]
nop word [eax + eax]
mov edx, dword [ebp - 0x58]
cmp edx, dword [ebp - 0x5c]
jne 0x4ac1b3
lea ecx, [ebp - 0x60]
call fcn.004858b0
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x60]
mov word [eax + edx*2], 0x20
inc edx
mov dword [ebp - 0x58], edx
lea edx, [ebp - 0x60]
lea ecx, [ebp - 0xbc]
push esi
push ebx
call fcn.004b03b0
add esp, 8
movzx eax, byte [ebp - 0xbc]
cmp al, 4
jne 0x4ac757
add ebx, 0x14
add edi, 0xffffffec
jne 0x4ac1a0
mov eax, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
mov cl, 1
mov dword [ebp - 0x24], ecx
test eax, eax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], edx
jne 0x4ac22c
jmp 0x4ac79a
mov ecx, dword [ebp - 0x2c]
jmp 0x4abcbb
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
mov cl, 1
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], edx
cmp esi, edi
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], esi
jne 0x4ac25b
lea ecx, [ebp - 0xc8]
mov edx, esi
call fcn.004858b0
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xc0]
mov word [eax + esi*2], 0
inc esi
mov eax, 0x400
mov ecx, 0x608
mov dword [ebp - 0xc0], esi
mov esi, dword [ebp - 0x34]
cmp byte [esi + 0x58], 0
cmove ecx, eax
or ecx, dword [esi + 0x54]
cmp dword [ebp - 0x100], 0
mov dword [ebp - 0x104], ecx
je 0x4ac81b
mov esi, dword [ebp - 0xf4]
movsd xmm0, qword [ebp - 0xfc]
mov edi, 2
mov dword [ebp - 0x74], 2
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x8c], 0
test esi, esi
mov dword [ebp - 0xe8], esi
movsd qword [ebp - 0xf0], xmm0
jne 0x4ac301
mov bl, 1
lea ecx, [ebp - 0x74]
xor edx, edx
call fcn.004858b0
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x6c]
mov edi, eax
mov word [eax + ecx*2], 0
inc ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
xor edx, edx
lea ebx, [ebp - 0x84]
test eax, eax
setne dl
cmove esi, eax
mov dword [ebp - 0x504], edx
mov dword [ebp - 0x500], 0
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0x4f8], ecx
mov dword [ebp - 0x4f4], edx
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4ec], eax
mov dword [ebp - 0x4e8], ecx
mov dword [ebp - 0x4e4], esi
lea edx, [ebp - 0x504]
xor esi, esi
mov ecx, ebx
call fcn.004aaf60
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x20], edi
test eax, eax
je 0x4ad647
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0xe0], esi
lea edx, [ecx + ecx*8]
lea esi, [edx + edx*2]
add esi, ecx
shl ecx, 4
mov edx, dword [eax + esi + 0xb4]
mov edi, dword [eax + esi + 0xb8]
mov ebx, dword [eax + esi + 0xc8]
mov dword [ebp - 0x88], edx
movzx edx, byte [eax + esi + 0xcc]
mov dword [ebp - 0x90], edi
mov edi, dword [eax + esi + 0xbc]
mov byte [ebp - 0x30], dl
movzx edx, byte [eax + esi + 0xcf]
mov dword [ebp - 0xdc], edi
mov edi, dword [eax + esi + 0xc0]
cmp byte [ebp - 0x30], 2
mov byte [ebp - 0x64], dl
mov edx, dword [eax + esi + 0xc4]
mov dword [ebp - 0xe4], edx
mov dh, byte [ebp - 0x64]
mov byte [ebp - 0x5e], dh
movzx esi, word [eax + esi + 0xcd]
mov word [ebp - 0x60], si
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
lea eax, [ebp - 0x5d]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov eax, dword [ebp - 0x51]
movsd xmm0, qword [ebp - 0x60]
movsd xmm1, qword [ebp - 0x58]
mov dword [ebp - 0xad], eax
movsd qword [ebp - 0xb4], xmm1
movsd qword [ebp - 0xbc], xmm0
je 0x4ad647
lea eax, [ebp - 0xb9]
add ebx, edi
mov edx, edi
xor edi, edi
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, ebx
lea ebx, [ebp - 0x84]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x30], eax
movsd qword [ebp - 0x7c], xmm1
movsd qword [ebp - 0x84], xmm0
jmp 0x4ac47b
xor edi, edi
test si, si
je 0x4ac7ba
mov si, 1
test di, di
jne 0x4ac470
cmp edx, eax
je 0x4ac528
movzx ebx, byte [edx]
test bl, bl
js 0x4ac496
inc edx
jmp 0x4ac500
movzx ecx, byte [edx + 1]
mov edi, ebx
and edi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x4ac4d1
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
cmp bl, 0xf0
jb 0x4ac4dd
movzx ebx, byte [edx + 3]
and edi, 7
shl eax, 6
add edx, 4
shl edi, 0x12
and ebx, 0x3f
or ebx, eax
or ebx, edi
jmp 0x4ac4e7
shl edi, 6
add edx, 2
or edi, ecx
mov ebx, edi
jmp 0x4ac500
shl edi, 0xc
add edx, 3
or eax, edi
mov ebx, eax
mov eax, dword [ebp - 0x30]
cmp ebx, 0xffff
ja 0x4ac518
nop word cs:[eax + eax]
nop dword [eax]
xor edi, edi
mov esi, ebx
lea ebx, [ebp - 0x84]
test si, si
jne 0x4ac47b
jmp 0x4ac7ba
and ebx, 0x3ff
or ebx, 0xdc00
mov edi, ebx
jmp 0x4ac504
cmp dword [ebp - 0xe4], 0
mov edi, dword [ebp - 0x8c]
je 0x4ac547
push dword [ebp - 0x64]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp - 0x70]
mov esi, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x20]
sub eax, edi
cmp eax, esi
jae 0x4ac56d
mov edx, edi
lea ecx, [ebp - 0x74]
push esi
call fcn.004859e0
add esp, 4
mov ecx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x6c]
mov dword [ebp - 0x20], ecx
lea eax, [esi + esi]
lea ecx, [ecx + edi*2]
push eax
mov esi, dword [ebp - 0x88]
push esi
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add edi, dword [ebp - 0xdc]
cmp dword [ebp - 0x90], 0
mov dword [ebp - 0x6c], edi
je 0x4ac5a7
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp edi, dword [ebp - 0x70]
jne 0x4ac5be
lea ecx, [ebp - 0x74]
mov edx, edi
call fcn.004858b0
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp - 0x6c]
jmp 0x4ac5c1
mov eax, dword [ebp - 0x20]
mov word [eax + edi*2], 0x3d
inc edi
and dword [ebp - 0x64], 0xffffff00
xor esi, esi
mov edx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x6c], edi
mov edi, dword [ebp - 0x80]
movzx eax, byte [ebp - 0x78]
mov dword [ebp - 0x90], ecx
add ecx, edx
mov byte [ebp - 0x88], al
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x18], ecx
jmp 0x4ac60b
xor esi, esi
test bx, bx
je 0x4aca85
mov bx, 1
test si, si
jne 0x4ac600
cmp edx, ecx
je 0x4ac69f
movzx eax, byte [edx]
test al, al
js 0x4ac626
inc edx
jmp 0x4ac685
movzx ecx, byte [edx + 1]
mov esi, eax
and esi, 0x1f
and ecx, 0x3f
cmp al, 0xdf
jbe 0x4ac65f
movzx edi, byte [edx + 2]
shl ecx, 6
and edi, 0x3f
or edi, ecx
cmp al, 0xf0
jb 0x4ac66e
movzx eax, byte [edx + 3]
and esi, 7
shl edi, 6
add edx, 4
shl esi, 0x12
and eax, 0x3f
or eax, edi
or eax, esi
jmp 0x4ac678
shl esi, 6
add edx, 2
or esi, ecx
mov ecx, dword [ebp - 0x18]
mov eax, esi
jmp 0x4ac685
shl esi, 0xc
add edx, 3
or edi, esi
mov eax, edi
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
cmp eax, 0xffff
ja 0x4ac68e
xor esi, esi
mov ebx, eax
jmp 0x4ac602
and eax, 0x3ff
or eax, 0xdc00
mov esi, eax
jmp 0x4ac602
mov ebx, dword [ebp - 0x30]
movzx edx, byte [ebp - 0x88]
mov esi, ebx
shr esi, 8
cmp dl, 2
je 0x4ade42
lea eax, [ebp - 0x77]
lea ecx, [ebp - 0x5d]
mov dword [ebp - 0xd8], ebx
movzx eax, word [eax]
mov word [ecx + 0xa], ax
lea eax, [ebp - 0x77]
movzx eax, byte [eax + 2]
mov byte [ecx + 0xc], al
mov dword [ebp - 0x60], ebx
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0xd4], ebx
mov byte [ebp - 0x54], dl
mov word [ebp - 0xd0], 0
lea ecx, [ebp - 0x74]
lea edx, [ebp - 0xd8]
call fcn.00485760
test edi, edi
lea ebx, [ebp - 0x84]
je 0x4ac720
push dword [ebp - 0x30]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov edx, dword [ebp - 0x6c]
cmp edx, dword [ebp - 0x70]
jne 0x4ac733
lea ecx, [ebp - 0x74]
call fcn.004858b0
mov edx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x64]
mov word [edi + edx*2], 0
inc edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x6c], edx
lea edx, [ebp - 0x504]
jmp 0x4ac363
movzx ecx, byte [ebp - 0xb5]
mov ebx, dword [ebp - 0xbb]
movzx esi, word [ebp - 0xb7]
movzx eax, al
mov edi, ebx
shl ecx, 0x10
or esi, ecx
shl edi, 8
cmp dword [ebp - 0x5c], 0
je 0x4ac794
push dword [ebp - 0x60]
push 0
push dword [0x5c9128]
mov dword [ebp - 0x14], eax
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp - 0x14]
shld esi, ebx, 8
or edi, eax
mov eax, dword [ebp - 0x10]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], 2
xor ebx, ebx
cmp dword [ebp - 0x2c], 0
jne 0x4ad845
jmp 0x4ad855
cmp dword [ebp - 0xe4], 0
je 0x4ac7d3
push dword [ebp - 0x64]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x80], 0
mov esi, dword [ebp - 0x88]
je 0x4ac7f2
push dword [ebp - 0x84]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
or dword [ebp - 0x18], 2
cmp dword [ebp - 0x90], 0
mov edi, 0x56c100
je 0x4acab3
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
jmp 0x4acab3
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x30], 2
mov dword [ebp - 0x20], 0
cmp byte [esi + 0x44], 2
jne 0x4ac853
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0x90], 2
xor ecx, ecx
xor eax, eax
jmp 0x4ad288
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x40]
xor edi, edi
add eax, edx
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x64], eax
jmp 0x4ac87b
xor edi, edi
test si, si
je 0x4aca69
mov si, 1
test di, di
jne 0x4ac870
cmp edx, eax
je 0x4ad226
movzx ebx, byte [edx]
test bl, bl
js 0x4ac896
inc edx
jmp 0x4ac8f2
movzx ecx, byte [edx + 1]
mov edi, ebx
and edi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x4ac8d1
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
cmp bl, 0xf0
jb 0x4ac8dd
movzx ebx, byte [edx + 3]
and edi, 7
shl eax, 6
add edx, 4
shl edi, 0x12
and ebx, 0x3f
or ebx, eax
or ebx, edi
jmp 0x4ac8e7
shl edi, 6
add edx, 2
or edi, ecx
mov ebx, edi
jmp 0x4ac8f2
shl edi, 0xc
add edx, 3
or eax, edi
mov ebx, eax
mov eax, dword [ebp - 0x64]
cmp ebx, 0xffff
ja 0x4ac8fb
xor edi, edi
mov esi, ebx
jmp 0x4ac872
and ebx, 0x3ff
or ebx, 0xdc00
mov edi, ebx
jmp 0x4ac872
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + edi*2 - 8]
lea ecx, [eax - 0x42]
cmp ecx, 0x21
ja 0x4ac0fe
mov edx, dword [ebp - 0x64]
add edx, dword [ecx*4 + 0x4ae524]
jmp edx
mov eax, dword [ebp - 0x10]
mov dword [eax + 4], 0x56c100
mov dword [eax], 2
mov dword [eax + 8], 2
jmp 0x4ad7eb
mov eax, edi
mov edi, 0x56c100
mov esi, 2
test eax, eax
je 0x4acaa5
push dword [ebp - 0x30]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp - 0xe0]
shl eax, 8
or eax, esi
mov dword [ebp - 0x18], eax
xor ebx, ebx
lea ecx, [ebp - 0x504]
call fcn.004b0820
cmp dword [ebp - 0x70], 0
je 0x4acad6
push dword [ebp - 0x74]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
mov dword [eax + 4], edi
mov dword [eax + 8], 2
jmp 0x4ad801
mov dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4acb39
add edi, eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edi
mov word [ebp - 0xb4], 0
mov byte [ebp - 0xb0], 1
lea ecx, [ebp - 0x504]
lea edx, [ebp - 0xbc]
call fcn.004a4f00
movzx eax, byte [ebp - 0x4f8]
cmp al, 2
jne 0x4acd9f
lea ecx, [ebp - 0x60]
call fcn.004a53b0
cmp byte [ebp - 0x54], 2
jne 0x4acb54
lea ecx, [ebp - 0x60]
call fcn.004865a0
jmp 0x4acc01
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x58]
mov ecx, edi
mov edx, ebx
call fcn.004a73b0
mov dword [ebp - 0x504], edi
mov dword [ebp - 0x500], esi
mov esi, dword [ebp - 0x54]
cmp ebx, edx
cmovb edx, ebx
test eax, eax
cmove edx, ebx
mov dword [ebp - 0x4fc], edx
mov dword [ebp - 0x4f8], esi
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x504]
push dword [ebp - 0x2c]
call fcn.004a6220
add esp, 4
cmp dword [ebp - 0x30], 1
je 0x4acbb0
lea ecx, [ebp - 0x504]
call fcn.004aad50
mov esi, dword [ebp - 0x504]
mov edx, esi
lea ecx, [ebp - 0xbc]
push dword [ebp - 0x4fc]
call fcn.004b0180
add esp, 4
cmp dword [ebp - 0x500], 0
je 0x4acbe3
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp - 0xbc]
test eax, eax
je 0x4acc01
mov ecx, dword [ebp - 0xb8]
mov edi, dword [ebp - 0xb4]
mov esi, dword [ebp - 0x34]
jmp 0x4ad0bd
mov ebx, 0x200
mov dword [ebp - 0xd8], 2
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 2
mov dword [ebp - 0x24], 0
cmp ebx, 0x201
jb 0x4acc61
jmp 0x4acc80
mov edi, dword [ebp - 0x2c]
jbe 0x4acd15
cmp ebx, 0x201
jae 0x4acc80
mov dword [ebp - 0x28], 0x200
lea esi, [ebp - 0x504]
mov edi, ebx
jmp 0x4accc0
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
sub ebx, edi
sub eax, edi
cmp eax, ebx
jae 0x4accae
mov edx, edi
lea ecx, [ebp - 0xd8]
push ebx
call fcn.004859e0
add esp, 4
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xd4]
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], edi
push 0
call sub.kernel32.dll_SetLastError
push edi
push esi
call sub.kernel32.dll_GetSystemDirectoryW
mov ebx, eax
test eax, eax
jne 0x4acce1
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x4ace86
cmp ebx, edi
jne 0x4acc50
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x4ae06a
lea ebx, [edi + edi]
test edi, edi
mov eax, 0xffffffff
cmovs ebx, eax
cmp ebx, 0x201
jae 0x4acc80
jmp 0x4acc61
mov edx, dword [ebp - 0x28]
cmp ebx, edx
ja 0x4ae12a
mov edx, esi
lea ecx, [ebp - 0x60]
push ebx
call fcn.00486630
add esp, 4
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x60]
push edi
call fcn.004a6220
add esp, 4
cmp dword [ebp - 0x30], 1
je 0x4acd4b
lea ecx, [ebp - 0x60]
call fcn.004aad50
mov esi, dword [ebp - 0x60]
mov edx, esi
lea ecx, [ebp - 0x84]
push dword [ebp - 0x58]
call fcn.004b0180
add esp, 4
cmp dword [ebp - 0x5c], 0
je 0x4acd75
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
movsd xmm0, qword [ebp - 0x84]
mov eax, dword [ebp - 0x7c]
mov bl, 1
movsd qword [ebp - 0xb8], xmm0
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xbc], 0
jmp 0x4acea4
lea edi, [ebp - 0x504]
lea ebx, [ebp - 0xbc]
jmp 0x4acdc8
mov ecx, edi
mov edx, ebx
call fcn.004a4f00
movzx eax, byte [ebp - 0x4f8]
cmp al, 2
je 0x4acb39
mov esi, dword [ebp - 0x4fc]
mov ecx, dword [ebp - 0x504]
mov edx, dword [ebp - 0x500]
test esi, esi
jne 0x4acdf2
test edx, edx
je 0x4acdb0
push ecx
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
jmp 0x4acdb0
lea ebx, [ebp - 0x4f7]
lea edi, [ebp - 0x53]
movzx ebx, word [ebx]
mov word [edi], bx
lea ebx, [ebp - 0x4f7]
mov ah, byte [ebx + 2]
mov byte [edi + 2], ah
lea edi, [ebp - 0x504]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], esi
mov byte [ebp - 0x54], al
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x60]
push dword [ebp - 0x2c]
call fcn.004a6220
add esp, 4
cmp dword [ebp - 0x30], 1
je 0x4ace3e
lea ecx, [ebp - 0x60]
call fcn.004aad50
mov esi, dword [ebp - 0x60]
mov edx, esi
mov ecx, edi
push dword [ebp - 0x58]
call fcn.004b0180
add esp, 4
cmp dword [ebp - 0x5c], 0
lea ebx, [ebp - 0xbc]
je 0x4ace6a
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp - 0x504]
test eax, eax
jne 0x4ad862
mov ecx, edi
mov edx, ebx
call fcn.004a4f00
jmp 0x4acdb9
call sub.kernel32.dll_GetLastError
xor ebx, ebx
mov byte [ebp - 0xb8], 0
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xbc], 1
cmp dword [ebp - 0x1c], 0
mov esi, dword [ebp - 0x34]
je 0x4acebd
push dword [ebp - 0x20]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
test bl, bl
je 0x4acecf
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x4ad0b1
lea ecx, [ebp - 0xbc]
call fcn.004b0220
mov ebx, 0x200
mov dword [ebp - 0xd8], 2
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 2
mov dword [ebp - 0x24], 0
cmp ebx, 0x201
jb 0x4acf31
jmp 0x4acf50
mov edi, dword [ebp - 0x2c]
jbe 0x4acfe5
cmp ebx, 0x201
jae 0x4acf50
mov dword [ebp - 0x28], 0x200
lea esi, [ebp - 0x504]
mov edi, ebx
jmp 0x4acf90
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
sub ebx, edi
sub eax, edi
cmp eax, ebx
jae 0x4acf7e
mov edx, edi
lea ecx, [ebp - 0xd8]
push ebx
call fcn.004859e0
add esp, 4
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xd4]
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], edi
push 0
call sub.kernel32.dll_SetLastError
push edi
push esi
call sub.kernel32.dll_GetWindowsDirectoryW
mov ebx, eax
test eax, eax
jne 0x4acfb1
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x4ad06c
cmp ebx, edi
jne 0x4acf20
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x4ae086
lea ebx, [edi + edi]
test edi, edi
mov eax, 0xffffffff
cmovs ebx, eax
cmp ebx, 0x201
jae 0x4acf50
jmp 0x4acf31
mov edx, dword [ebp - 0x28]
cmp ebx, edx
ja 0x4ae14c
mov edx, esi
lea ecx, [ebp - 0x60]
push ebx
call fcn.00486630
add esp, 4
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x60]
push edi
call fcn.004a6220
add esp, 4
cmp dword [ebp - 0x30], 1
je 0x4ad01b
lea ecx, [ebp - 0x60]
call fcn.004aad50
mov esi, dword [ebp - 0x60]
mov edx, esi
lea ecx, [ebp - 0x84]
push dword [ebp - 0x58]
call fcn.004b0180
add esp, 4
cmp dword [ebp - 0x5c], 0
je 0x4ad045
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
movsd xmm0, qword [ebp - 0x84]
mov eax, dword [ebp - 0x7c]
mov bl, 1
movsd qword [ebp - 0xb8], xmm0
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xbc], 0
jmp 0x4ad08a
call sub.kernel32.dll_GetLastError
xor ebx, ebx
mov byte [ebp - 0xb8], 0
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xbc], 1
cmp dword [ebp - 0x1c], 0
mov esi, dword [ebp - 0x34]
je 0x4ad0a3
push dword [ebp - 0x20]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
test bl, bl
je 0x4ad0c8
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x4ad0c8
mov ecx, dword [ebp - 0xb4]
mov edi, dword [ebp - 0xb0]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], ecx
jmp 0x4ac0df
lea ecx, [ebp - 0xbc]
call fcn.004b0220
mov edx, str.PATHRUST_MIN_STACKlibrary_std_src_sys_common_thread_info.rs
lea ecx, [ebp - 0xd8]
push 4
call fcn.004a38e0
add esp, 4
cmp byte [ebp - 0xcc], 2
je 0x4ad637
movsd xmm0, qword [ebp - 0xd8]
movsd xmm1, qword [ebp - 0xd0]
lea edi, [ebp - 0x504]
lea ebx, [ebp - 0xbc]
movsd qword [ebp - 0x84], xmm0
movsd qword [ebp - 0x7c], xmm1
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x7c]
add eax, ecx
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0xb8], eax
mov word [ebp - 0xb4], 0
mov byte [ebp - 0xb0], 1
jmp 0x4ad15e
mov eax, dword [ebp - 0x504]
lea ebx, [ebp - 0xbc]
test eax, eax
jne 0x4adcf9
mov ecx, edi
mov edx, ebx
call fcn.004a4f00
jmp 0x4ad172
mov ecx, edi
mov edx, ebx
call fcn.004a4f00
movzx eax, byte [ebp - 0x4f8]
cmp al, 2
je 0x4ad621
mov esi, dword [ebp - 0x4fc]
mov ecx, dword [ebp - 0x504]
mov edx, dword [ebp - 0x500]
test esi, esi
jne 0x4ad1ab
test edx, edx
je 0x4ad169
push ecx
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
jmp 0x4ad169
lea ebx, [ebp - 0x4f7]
lea edi, [ebp - 0x53]
movzx ebx, word [ebx]
mov word [edi], bx
lea ebx, [ebp - 0x4f7]
mov ah, byte [ebx + 2]
mov byte [edi + 2], ah
lea edi, [ebp - 0x504]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], esi
mov byte [ebp - 0x54], al
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x60]
push dword [ebp - 0x2c]
call fcn.004a6220
add esp, 4
cmp dword [ebp - 0x30], 1
je 0x4ad1f7
lea ecx, [ebp - 0x60]
call fcn.004aad50
mov esi, dword [ebp - 0x60]
mov edx, esi
mov ecx, edi
push dword [ebp - 0x58]
call fcn.004b0180
add esp, 4
cmp dword [ebp - 0x5c], 0
je 0x4ad14a
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
jmp 0x4ad14a
mov esi, dword [ebp - 0x88]
mov ecx, eax
mov dword [ebp - 0x504], esi
mov dword [ebp - 0x500], ecx
mov word [ebp - 0x4fc], 0
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x504]
call fcn.004ae610
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x34]
cmp edx, ecx
jne 0x4ad26c
lea ecx, [ebp - 0x60]
call fcn.004858b0
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x60]
mov eax, ecx
and eax, 0xffffff00
mov word [edi + edx*2], 0
mov dword [ebp - 0xdc], edi
mov dword [ebp - 0x90], edi
movzx ecx, cl
xorps xmm0, xmm0
or ecx, eax
movups xmmword [ebp - 0xbc], xmm0
mov dword [ebp - 0x34], ecx
push 0x5c9138
call sub.kernel32.dll_AcquireSRWLockExclusive
mov eax, dword [0x5c91e0]
test eax, 0x7fffffff
je 0x4ad2b9
call fcn.00487de0
xor al, 1
jmp 0x4ad2bb
xor eax, eax
movzx edx, byte [0x5c913c]
mov edi, dword [esi + 8]
mov dword [ebp - 0x80], 0x5c9138
mov dword [ebp - 0x64], eax
mov byte [ebp - 0x7c], al
mov eax, dword [esi + 0x10]
xor ecx, ecx
lea ebx, [esi + 8]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x50], 0
test dl, dl
mov byte [ebp - 0x88], dl
mov edx, dword [esi]
mov dword [ebp - 0xe4], eax
setne cl
cmp edi, 5
mov dword [ebp - 0x84], ecx
mov ecx, 0
cmove ebx, ecx
cmp eax, 5
lea eax, [esi + 0x10]
cmove eax, ecx
cmp edx, 5
cmove edx, ecx
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0x504]
push eax
push 0xfffffffffffffff6
push dword [esi + 4]
call fcn.004b08c0
add esp, 0xc
movzx eax, byte [ebp - 0x504]
mov esi, dword [ebp - 0x20]
cmp al, 4
jne 0x4ad5c3
xor edx, edx
cmp edi, 5
lea eax, [ebp - 0x58]
cmovne edx, edi
je 0x4ad361
mov edi, dword [ebx + 4]
mov ecx, dword [ebp - 0x500]
mov dword [ebp - 0x8c], ecx
lea ecx, [ebp - 0x504]
push eax
push 0xfffffffffffffff5
push edi
call fcn.004b08c0
add esp, 0xc
movzx eax, byte [ebp - 0x504]
cmp al, 4
jne 0x4ad5f2
mov ecx, dword [ebp - 0xe4]
xor edx, edx
lea eax, [ebp - 0x50]
cmp ecx, 5
cmovne edx, ecx
je 0x4ad3aa
mov ecx, dword [ebp - 0xe0]
mov edi, dword [ecx + 4]
mov ebx, dword [ebp - 0x500]
lea ecx, [ebp - 0x504]
push eax
push 0xfffffffffffffff4
push edi
call fcn.004b08c0
add esp, 0xc
movzx eax, byte [ebp - 0x504]
cmp al, 4
jne 0x4ad69a
mov edi, dword [ebp - 0x500]
cmp dword [ebp - 0x8c], 0
mov dword [ebp - 0x4fc], 0
mov dword [ebp - 0x500], 0
mov dword [ebp - 0x4f4], 0
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4ec], 0
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4e4], 0
mov dword [ebp - 0x4e8], 0
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4d4], 0
mov dword [ebp - 0x4d8], 0
mov dword [ebp - 0x4cc], 0
mov dword [ebp - 0x4d0], 0
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4c8], 0
mov dword [ebp - 0x504], 0x44
jne 0x4ad492
test ebx, ebx
jne 0x4ad492
test edi, edi
je 0x4ad4b4
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x4d8], 0x100
mov dword [ebp - 0x4cc], eax
mov dword [ebp - 0x4c8], ebx
mov dword [ebp - 0x4c4], edi
mov ecx, dword [ebp - 0xc8]
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x504]
push eax
push dword [ebp - 0xdc]
push esi
mov esi, ecx
push dword [ebp - 0x104]
push 1
push 0
push 0
push ecx
push dword [ebp - 0x28]
call sub.kernel32.dll_CreateProcessW
test eax, eax
je 0x4ad72e
mov eax, dword [ebp - 0x10]
movsd xmm1, qword [ebp - 0x58]
movsd xmm0, qword [ebp - 0x50]
movsd xmm2, qword [ebp - 0x60]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [ebp - 0xbc]
movsd qword [eax + 0x18], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax], xmm1
push edi
call sub.kernel32.dll_CloseHandle
push ebx
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x8c]
call sub.kernel32.dll_CloseHandle
lea ecx, [ebp - 0x84]
call fcn.004b0f30
cmp dword [ebp - 0x34], 0
je 0x4ad556
push dword [ebp - 0x90]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x18], 0
je 0x4ad56c
push dword [ebp - 0x30]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0xc4], 0
je 0x4ad583
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x14], 0
je 0x4ad599
push dword [ebp - 0x28]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 0x24]
sete al
or cl, al
cmp cl, 1
je 0x4abdc7
push dword [ebp - 0x1c]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
jmp 0x4abdc7
movzx ecx, byte [ebp - 0x501]
mov edx, dword [ebp - 0x10]
movzx edi, word [ebp - 0x503]
mov esi, dword [ebp - 0x500]
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 0x4ad75a
movzx ecx, byte [ebp - 0x501]
mov edx, dword [ebp - 0x10]
movzx edi, word [ebp - 0x503]
mov esi, dword [ebp - 0x500]
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 0x4ad74f
cmp dword [ebp - 0x80], 0
je 0x4ad637
push dword [ebp - 0x24]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov byte [ebp - 0x70], 2
mov dword [ebp - 0x6c], 0x56c124
jmp 0x4abcb5
xor ebx, ebx
lea ecx, [ebp - 0x504]
call fcn.004b0820
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x8c]
cmp edi, dword [ebp - 0x70]
jne 0x4ad674
xor ebx, ebx
lea ecx, [ebp - 0x74]
mov edx, edi
call fcn.004858b0
mov ecx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x6c]
mov word [ecx + edi*2], 0
mov dword [ebp - 0x20], ecx
mov esi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
test ecx, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], ecx
jne 0x4ac830
inc edi
jmp 0x4acad6
movzx ecx, byte [ebp - 0x501]
mov edx, dword [ebp - 0x10]
movzx edi, word [ebp - 0x503]
mov esi, dword [ebp - 0x500]
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 0x4ad749
call sub.kernel32.dll_GetLastError
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 0
mov dword [ecx + 4], eax
mov dword [ecx + 8], 2
push edi
call sub.kernel32.dll_CloseHandle
push ebx
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x8c]
call sub.kernel32.dll_CloseHandle
cmp dword [ebp - 0x60], 0
je 0x4ad768
push dword [ebp - 0x5c]
call sub.kernel32.dll_CloseHandle
cmp dword [ebp - 0x58], 0
je 0x4ad776
push dword [ebp - 0x54]
call sub.kernel32.dll_CloseHandle
cmp dword [ebp - 0x50], 0
je 0x4ad784
push dword [ebp - 0x4c]
call sub.kernel32.dll_CloseHandle
cmp byte [ebp - 0x88], 0
je 0x4ad7a6
cmp byte [ebp - 0x64], 0
jne 0x4ad7c8
mov eax, dword [0x5c91e0]
test eax, 0x7fffffff
je 0x4ad7c8
call fcn.00487de0
jmp 0x4ad7bd
cmp byte [ebp - 0x64], 0
jne 0x4ad7c8
mov eax, dword [0x5c91e0]
test eax, 0x7fffffff
je 0x4ad7c8
call fcn.00487de0
test al, al
jne 0x4ad7c8
mov byte [0x5c913c], 1
push 0x5c9138
call sub.kernel32.dll_ReleaseSRWLockExclusive
cmp dword [ebp - 0x34], 0
je 0x4ad7eb
push dword [ebp - 0x90]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x18], 0
je 0x4ad801
push dword [ebp - 0x30]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0xc4], 0
je 0x4ad81d
push dword [ebp - 0xc8]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x14], 0
je 0x4ad833
push dword [ebp - 0x28]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
cmp byte [ebp - 0x24], 0
mov bl, 1
jne 0x4abdc7
cmp dword [ebp - 0x2c], 0
je 0x4ad855
push dword [ebp - 0x1c]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
test bl, bl
je 0x4abcca
jmp 0x4abdc7
mov ecx, dword [ebp - 0x500]
mov edi, dword [ebp - 0x4fc]
jmp 0x4acbf9
mov ecx, dword [ebp - 0x500]
mov edi, dword [ebp - 0x4fc]
cmp dword [ebp - 0x80], 0
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], ecx
je 0x4ac0df
push dword [ebp - 0x24]
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
jmp 0x4ac0df
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_home_vi_.cargo_registry_src_index.crates.io_6f17d22bba15001f_url_1.7.2_src_lib.rsURL_has_no_host
push 0x56a508
call fcn.00445340
add esp, 4
jmp 0x4ae190
mov dword [ebp - 0xe0], esi
movzx esi, bl
jmp 0x4acaa5
call sub.kernel32.dll_GetLastError
lea edi, [ebp - 0xbc]
lea esi, [ebp - 0x84]
mov byte [ebp - 0xbc], 0
mov dword [ebp - 0x60], 0x56c0a0
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x50], 0
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x80], fcn.004a42a0
mov dword [ebp - 0x54], 1
lea ecx, [ebp - 0x60]
mov edx, 0x56c0d0
call fcn.00444350
jmp 0x4ae190
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_home_vi_.cargo_registry_src_index.crates.io_6f17d22bba15001f_url_1.7.2_src_lib.rsURL_has_no_host
push 0x569c38
call fcn.00445340
add esp, 4
jmp 0x4ae190
call fcn.0041b180
jmp 0x4ae190
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
call fcn.0041b1c0
jmp 0x4ae190
call fcn.0041b180
jmp 0x4ae190
mov ecx, 1
mov edx, ebx
call fcn.0041b1c0
jmp 0x4ae190
call fcn.0041b180
jmp 0x4ae190
mov ecx, 1
mov edx, ebx
call fcn.0041b1c0
jmp 0x4ae190
xor edx, edx
mov ecx, 1
push 0x56bf00
call fcn.00444cf0
add esp, 4
jmp 0x4ae190
mov edx, esi
mov ecx, eax
push 0x56bf10
call fcn.00445020
add esp, 4
jmp 0x4ae190
mov edx, esi
push 0x56bf20
call fcn.00444cf0
add esp, 4
jmp 0x4ae190
mov edx, 0x21
mov ecx, str.assertion_failed:_self.height___0
push 0x56a260
call fcn.00445340
add esp, 4
jmp 0x4ae190
mov ecx, 1
mov edx, edi
call fcn.0041b1c0
jmp 0x4ae190
mov edx, 0x28
mov ecx, 0x5a387e
push 0x56c70c
call fcn.00445340
add esp, 4
jmp 0x4ae190
mov edx, 0x28
mov ecx, 0x5a387e
push 0x56c70c
call fcn.00445340
add esp, 4
jmp 0x4ae190
call sub.kernel32.dll_GetLastError
mov byte [ebp - 0x60], 0
mov dword [ebp - 0x5c], eax
lea esi, [ebp - 0x60]
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x504], 0x56bf54
mov dword [ebp - 0x500], 1
mov dword [ebp - 0x4f4], 0
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0xb8], fcn.004a42a0
mov dword [ebp - 0x4f8], 1
lea ecx, [ebp - 0x504]
mov edx, 0x56bf5c
call fcn.00444350
jmp 0x4ae190
call fcn.0041b180
jmp 0x4ae190
mov ecx, ebx
push 0x56c6fc
call fcn.00445020
add esp, 4
jmp 0x4ae190
mov edx, edi
push 0x569cb4
call fcn.00444cf0
add esp, 4
jmp 0x4ae190
mov ecx, ebx
push 0x56c6fc
call fcn.00445020
add esp, 4
jmp 0x4ae190
ud2