Function at 0x499c8e
Capabilities:
Set environment variable

Disassembly:
push 0xe8
mov eax, 0x4c8bf1
call fcn.004c5467
mov edi, ecx
mov dword [ebp - 0xf0], edi
lea ecx, [ebp - 0xac]
call dword [sym.imp.MFC42u.dll_CString::CString]
xor ebx, ebx
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 4], ebx
call dword [sym.imp.MFC42u.dll_CString::CString]
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 1
call dword [sym.imp.MFC42u.dll_CString::CString]
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 2
call dword [sym.imp.MFC42u.dll_CString::CString]
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 3
call dword [sym.imp.MFC42u.dll_CString::CString]
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 4
call dword [sym.imp.MFC42u.dll_CString::CString]
mov eax, ebx
mov byte [ebp - 0xc3], bl
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], eax
mov al, bl
mov byte [ebp - 0xa6], al
mov byte [ebp - 0xc4], al
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xc0]
mov eax, dword [sym.imp.msvcrt.dll___wargv]
mov dword [edi + 0xe9], ebx
mov dword [edi + 0x8144], ebx
mov dword [edi + 0x8148], ebx
mov dword [edi + 0x814c], 0xa
mov dword [edi + 0x8150], ebx
mov dword [edi + 0x8130], ebx
mov dword [edi + 0x8134], ebx
mov dword [edi + 0x8138], ebx
mov byte [ebp - 0xa5], bl
mov ebx, dword [eax]
mov eax, dword [sym.imp.msvcrt.dll___argc]
push 0x40f828
mov esi, dword [eax]
mov dword [ebp - 0xb8], esi
call dword [0x4f63d8]
push 0x40f840
lea ecx, [ebp - 0xd4]
call dword [0x4f63d8]
mov eax, 0x400
lea ecx, [ebp - 0xac]
push eax
push eax
call dword [sym.imp.MFC42u.dll_CString::GetBuffer]
push eax
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0xffffffffffffffff
lea ecx, [ebp - 0xac]
mov dword [ebp - 0xd8], eax
call dword [sym.imp.MFC42u.dll_CString::ReleaseBuffer]
mov eax, dword [ebp - 0xd8]
cmp eax, 0x400
jne 0x499dee
lea ecx, [ebp - 0xac]
call dword [sym.imp.MFC42u.dll_CString::Empty]
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x499e9e
lea ecx, [ebp - 0xbc]
call dword [sym.imp.MFC42u.dll_CString::CString]
mov esi, 0x400
mov byte [ebp - 4], 7
push esi
lea ecx, [ebp - 0xbc]
call dword [sym.imp.MFC42u.dll_CString::GetBuffer]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push esi
push eax
push 0xa
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0xac]
call dword [sym.imp.msvcrt.dll__wsplitpath_s]
add esp, 0x24
lea ecx, [ebp - 0xbc]
push 0xffffffffffffffff
call dword [sym.imp.MFC42u.dll_CString::ReleaseBuffer]
mov esi, dword [ebp - 0xbc]
lea ecx, [ebp - 0xac]
push 0x400
call dword [sym.imp.MFC42u.dll_CString::GetBuffer]
push 0x40f858
push 0x40f860
push esi
lea ecx, [ebp - 0x24]
push ecx
push 0x400
push eax
call dword [sym.imp.msvcrt.dll__wmakepath_s]
add esp, 0x18
lea ecx, [ebp - 0xac]
push 0xffffffffffffffff
call dword [sym.imp.MFC42u.dll_CString::ReleaseBuffer]
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 6
call dword [0x4f63ac]
mov esi, dword [ebp - 0xb8]
jmp 0x499eaf
push 0x40f870
lea ecx, [ebp - 0xac]
call dword [0x4f63d8]
dec esi
mov dword [ebp - 0xb8], esi
test esi, esi
jle 0x49a77a
push 0x2d
pop edx
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xcc], 0x2f
add ebx, 4
mov eax, dword [ebx]
movzx ecx, word [eax]
cmp cx, dx
je 0x49a04c
cmp cx, word [ebp - 0xcc]
je 0x49a044
push 0x1a0
call dword [sym.imp.msvcrt.dll_malloc]
mov dword [ebp - 0xb0], eax
pop ecx
test eax, eax
je 0x49a7a8
push 0x1a0
xor ecx, ecx
push ecx
push eax
call sub.msvcrt.dll_memset
mov ecx, dword [edi + 0x8130]
mov eax, dword [ebp - 0xb0]
push 0x800
mov dword [edi + ecx*4 + 0x80f0], eax
xor ecx, ecx
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 4], ecx
call dword [sym.imp.msvcrt.dll_malloc]
mov ecx, dword [edi + 0x8130]
add esp, 0x10
mov ecx, dword [edi + ecx*4 + 0x80f0]
mov dword [ecx], eax
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
cmp dword [eax], 0
je 0x49a7a1
push 0x400
push dword [ebx]
push dword [eax]
call dword [sym.imp.msvcrt.dll__wfullpath]
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
push dword [eax]
push 0x40fb84
call dword [sym.imp.msvcrt.dll_wprintf]
mov eax, dword [edi + 0x8130]
add esp, 0x14
mov ecx, edi
mov eax, dword [edi + eax*4 + 0x80f0]
push dword [eax]
call fcn.0049ba19
test eax, eax
je 0x49a790
mov eax, dword [edi + 0x8130]
lea ecx, [edi + 0x8160]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x198], ecx
xor ecx, ecx
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x180], fcn.0049bf30
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x10], ecx
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x190], 0x4ad350
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x14], 0x10000000
inc dword [edi + 0x8130]
jmp 0x49a768
mov word [eax], dx
jmp 0x49a76b
push 0x40f888
push eax
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a06a
mov byte [edi + 0x82fa], 1
jmp 0x49a768
push 0x40f898
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
je 0x49a05e
push 0x40f8ac
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a09c
mov byte [ebp - 0xa5], 1
jmp 0x49a768
push 0x40f8c8
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a0ba
mov byte [edi + 0xeb], al
jmp 0x49a768
push 0x40f8d8
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a0d9
mov byte [edi + 0x82f9], 1
jmp 0x49a768
push 0x40f148
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
je 0x49a768
push 0x40f8ec
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a10f
mov byte [edi + 0x82f3], 1
jmp 0x49a768
push 0x40f8f8
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
je 0x49a103
push 0x40f904
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a141
mov byte [edi + 0xe9], 1
jmp 0x49a768
push 0x40f91c
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a169
mov word [edi + 0x82ef], 0x101
mov byte [edi + 0x82f8], 1
jmp 0x49a768
push 0x40f928
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a187
mov byte [edi + 0x82f8], al
jmp 0x49a768
push 0x40f944
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a1a5
mov byte [edi + 0x82f1], al
jmp 0x49a768
push 0x40f2b8
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a343
push 0x40c03c
lea ecx, [ebp - 0xbc]
call dword [sym.imp.MFC42u.dll_CString::CString_2]
mov byte [ebp - 4], 8
cmp esi, 1
jle 0x49a1ff
mov edx, dword [ebx + 4]
movzx eax, word [edx]
cmp ax, word [ebp - 0xe0]
je 0x49a1ff
cmp ax, word [ebp - 0xcc]
je 0x49a1ff
add ebx, 4
lea ecx, [ebp - 0xbc]
push edx
dec esi
call dword [0x4f63d8]
push 0x1a0
call dword [sym.imp.msvcrt.dll_malloc]
mov dword [ebp - 0xb0], eax
pop ecx
test eax, eax
je 0x49a7af
push 0x1a0
xor ecx, ecx
push ecx
push eax
call sub.msvcrt.dll_memset
mov ecx, dword [edi + 0x8130]
mov eax, dword [ebp - 0xb0]
push 0x800
mov dword [edi + ecx*4 + 0x80f0], eax
xor ecx, ecx
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax], ecx
call dword [sym.imp.msvcrt.dll_malloc]
mov ecx, dword [edi + 0x8130]
add esp, 0x10
mov ecx, dword [edi + ecx*4 + 0x80f0]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
cmp dword [eax + 4], 0
je 0x49a7af
push dword [ebp - 0xbc]
push 0x400
push dword [eax + 4]
call dword [sym.imp.msvcrt.dll_wcscpy_s]
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
push dword [eax + 4]
push 0x40f980
call dword [sym.imp.msvcrt.dll_wprintf]
mov eax, dword [edi + 0x8130]
lea ecx, [edi + 0x8160]
add esp, 0x14
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x198], ecx
xor ecx, ecx
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x180], fcn.0049bf30
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x10], ecx
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
lea ecx, [ebp - 0xbc]
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x190], 0x4ad350
mov eax, dword [edi + 0x8130]
mov eax, dword [edi + eax*4 + 0x80f0]
mov dword [eax + 0x14], 0x10000100
inc dword [edi + 0x8130]
jmp 0x49a75e
push 0x40f18c
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a3a6
push 0x2d
pop edx
cmp esi, 1
jle 0x49a76b
lea eax, [ebx + 4]
mov ecx, dword [eax]
mov dword [ebp - 0xb0], eax
movzx eax, word [ecx]
cmp ax, dx
je 0x49a76b
cmp ax, word [ebp - 0xcc]
je 0x49a76b
push ecx
lea ecx, [ebp - 0xac]
call dword [0x4f63d8]
mov ebx, dword [ebp - 0xb0]
dec esi
mov byte [edi + 0xec], 1
jmp 0x49a768
push 0x40f9c0
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a3fe
push 0x2d
pop edx
cmp esi, 1
jle 0x49a76b
lea eax, [ebx + 4]
mov ecx, dword [eax]
mov dword [ebp - 0xb0], eax
movzx eax, word [ecx]
cmp ax, dx
je 0x49a76b
cmp ax, word [ebp - 0xcc]
je 0x49a76b
push ecx
lea ecx, [ebp - 0xac]
call dword [0x4f63d8]
mov ebx, dword [ebp - 0xb0]
jmp 0x49a399
push 0x40f200
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a483
push 0x2d
pop edx
cmp esi, 1
jle 0x49a76b
lea eax, [ebx + 4]
mov dword [ebp - 0xb8], eax
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
movzx eax, word [eax]
cmp ax, dx
je 0x49a76b
push 0x2f
pop ecx
cmp ax, cx
je 0x49a76b
mov ebx, 0x400
lea ecx, [ebp - 0xdc]
push ebx
call dword [sym.imp.MFC42u.dll_CString::GetBuffer]
push ebx
push dword [ebp - 0xb0]
push eax
call dword [sym.imp.msvcrt.dll__wfullpath]
add esp, 0xc
lea ecx, [ebp - 0xdc]
push 0xffffffffffffffff
call dword [sym.imp.MFC42u.dll_CString::ReleaseBuffer]
mov ebx, dword [ebp - 0xb8]
dec esi
jmp 0x49a768
push 0x40f9cc
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a4db
push 0x2d
pop edx
cmp esi, 1
jle 0x49a76b
lea eax, [ebx + 4]
mov ecx, dword [eax]
mov dword [ebp - 0xb0], eax
movzx eax, word [ecx]
cmp ax, dx
je 0x49a76b
cmp ax, word [ebp - 0xcc]
je 0x49a76b
push ecx
lea ecx, [ebp - 0xe8]
call dword [0x4f63d8]
mov ebx, dword [ebp - 0xb0]
jmp 0x49a47d
push 0x40f9d4
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a62a
push 0x2d
cmp esi, 1
jle 0x49a76a
lea eax, [ebx + 4]
mov edx, dword [eax]
mov dword [ebp - 0xb0], eax
pop ecx
movzx eax, word [edx]
cmp ax, cx
je 0x49a768
push 0x2f
pop ecx
cmp ax, cx
je 0x49a768
mov ecx, edx
xor eax, eax
mov dword [ebp - 0xec], eax
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0xe4]
jne 0x49a52e
sub ecx, ebx
sar ecx, 1
test ecx, ecx
jle 0x49a60e
mov edi, dword [ebp - 0xec]
mov esi, dword [ebp - 0xb0]
movzx eax, word [edx + edi*2]
cmp eax, 0x71
ja 0x49a5a4
je 0x49a59d
sub eax, 0x63
je 0x49a596
sub eax, 3
je 0x49a58f
sub eax, 5
je 0x49a588
sub eax, 3
je 0x49a581
dec eax
sub eax, 1
jne 0x49a5df
push 0x40fa58
jmp 0x49a5d3
push 0x40f9e4
jmp 0x49a5d3
push 0x40fa28
jmp 0x49a5d3
push 0x40fa7c
jmp 0x49a5d3
push 0x40fa6c
jmp 0x49a5d3
push 0x40fa48
jmp 0x49a5d3
sub eax, 0x73
je 0x49a5ce
sub eax, 1
je 0x49a5c7
sub eax, 1
je 0x49a5c0
dec eax
sub eax, 1
jne 0x49a5df
push 0x40f9f4
jmp 0x49a5d3
push 0x40fa38
jmp 0x49a5d3
push 0x40fa04
jmp 0x49a5d3
push 0x40fa18
lea ecx, [ebp - 0xb4]
call dword [0x4f6630]
mov edx, dword [esi]
inc edi
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0xe4]
jne 0x49a5e7
sub ecx, ebx
sar ecx, 1
cmp edi, ecx
jl 0x49a555
mov edi, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xb8]
push dword [ebp - 0xb4]
push 0x40fa90
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov ebx, dword [ebp - 0xb0]
jmp 0x49a47d
push 0x40fab8
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a649
mov byte [edi + 0xea], 1
jmp 0x49a768
push 0x40fac0
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a668
mov byte [edi + 0x82fb], 1
jmp 0x49a768
push 0x40facc
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a6ed
cmp esi, 1
jle 0x49a768
add ebx, 4
mov ecx, dword [ebx]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0xe4]
jne 0x49a68c
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
call dword [sym.imp.msvcrt.dll_malloc]
mov edx, eax
pop ecx
mov dword [edi + 0x8138], edx
mov ecx, dword [ebx]
lea eax, [ecx + 2]
mov dword [ebp - 0xec], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0xe4]
jne 0x49a6c1
sub ecx, dword [ebp - 0xec]
push dword [ebx]
sar ecx, 1
lea eax, [ecx + 1]
push eax
push edx
call dword [sym.imp.msvcrt.dll_wcscpy_s]
add esp, 0xc
jmp 0x49a47d
push 0x40fae0
push dword [ebx]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x49a768
cmp esi, 1
jle 0x49a768
mov edx, dword [ebx + 4]
movzx eax, word [edx]
cmp ax, word [ebp - 0xe0]
je 0x49a768
cmp ax, word [ebp - 0xcc]
je 0x49a768
add ebx, 4
lea ecx, [ebp - 0xc0]
push edx
dec esi
call dword [0x4f63d8]
push 0x40c238
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0xf4]
push eax
call dword [sym.imp.MFC42u.dll_operator]
push eax
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 9
call dword [sym.imp.MFC42u.dll_CString::operator]
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 6
call dword [0x4f63ac]
push 0x2d
pop edx
dec esi
mov dword [ebp - 0xb8], esi
test esi, esi
jg 0x499ed1
lea ecx, [edi + 0x8160]
call fcn.004ac6f3
test al, al
jne 0x49a7cc
push 0x40f958
jmp 0x49a795
push 0x40fbb8
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
jmp 0x49ad07
push 0x40fb40
jmp 0x49a795
push 0x40fae8
jmp 0x49a795
push 0x40f958
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
lea ecx, [ebp - 0xbc]
call dword [0x4f63ac]
jmp 0x49ad07
mov eax, dword [ebp - 0xdc]
xor ecx, ecx
mov ebx, dword [edi + 0x82dc]
mov dword [ebp - 0xe0], ebx
cmp dword [eax - 8], ecx
je 0x49a809
lea esi, [edi + 0xc4]
push 1
mov edx, esi
lea ecx, [ebp - 0xdc]
call fcn.0049c300
test al, al
je 0x49a809
mov edx, dword [esi]
push ebx
push 3
pop ecx
call fcn.004b6246
mov edx, dword [ebp - 0xe8]
xor eax, eax
cmp dword [edx - 8], eax
je 0x49a81f
push ebx
push 3
pop ecx
call fcn.004b6246
mov eax, dword [ebp - 0xac]
xor ecx, ecx
cmp dword [eax - 8], ecx
je 0x49a8e3
lea ecx, [ebp - 0xb8]
call dword [sym.imp.MFC42u.dll_CString::CString]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xb8]
mov esi, dword [ebp - 0xac]
push 0x400
call dword [sym.imp.MFC42u.dll_CString::GetBuffer]
push 0x400
push esi
push eax
call dword [sym.imp.msvcrt.dll__wfullpath]
add esp, 0xc
lea ecx, [ebp - 0xb8]
push 0xffffffffffffffff
call dword [sym.imp.MFC42u.dll_CString::ReleaseBuffer]
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0xac]
call dword [sym.imp.MFC42u.dll_CString::operator]
push dword [ebp - 0xac]
push 0x40fbfc
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xac]
mov edx, ebx
call fcn.004b57f4
mov ebx, eax
test ebx, ebx
jne 0x49a8d3
cmp byte [edi + 0xec], al
je 0x49a8d3
mov esi, dword [ebp - 0xac]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
push eax
push ebx
push 0x40fc30
call dword [sym.imp.msvcrt.dll_wprintf]
add esp, 0x10
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 6
call dword [0x4f63ac]
xor ebx, ebx
cmp dword [edi + 0x8130], ebx
ja 0x49a97d
push 0x1a0
call dword [sym.imp.msvcrt.dll_malloc]
mov esi, eax
pop ecx
test esi, esi
je 0x49a789
push 0x1a0
push ebx
push esi
call sub.msvcrt.dll_memset
mov dword [edi + 0x80f0], esi
mov dword [esi + 4], ebx
push 0x800
mov dword [edi + 0x8130], 1
call dword [sym.imp.msvcrt.dll_malloc]
mov ecx, dword [edi + 0x80f0]
add esp, 0x10
mov dword [ecx], eax
mov eax, dword [edi + 0x80f0]
mov eax, dword [eax]
test eax, eax
je 0x49a789
push 0x40fc98
push 0x400
push eax
call dword [sym.imp.msvcrt.dll_wcscpy_s]
mov eax, dword [edi + 0x80f0]
add esp, 0xc
mov dword [eax + 0x190], 0x4ad350
mov eax, dword [edi + 0x80f0]
mov dword [eax + 0x14], 0x10000000
mov bl, byte [ebp - 0xa5]
test bl, bl
je 0x49a9fe
push 1
call fcn.004c591d
cmp byte [ebp - 0xa6], 0
mov esi, eax
pop ecx
je 0x49a9a7
push dword [ebp - 0xd0]
call dword [sym.imp.msvcrt.dll_fclose]
pop ecx
xor eax, eax
mov bl, al
mov byte [ebp - 0xa6], bl
mov byte [ebp - 0xc4], bl
mov ebx, esi
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xc8], ebx
xor ebx, ebx
push 1
mov byte [ebp - 0xc3], bl
call fcn.004c591d
mov esi, eax
pop ecx
cmp byte [edi + 0x816c], bl
je 0x49a9ec
push dword [edi + 0x8168]
call dword [sym.imp.msvcrt.dll_fclose]
pop ecx
mov word [edi + 0x816c], bx
mov dword [edi + 0x8168], esi
jmp 0x49aad1
push 0x10
push 0x40ed90
push dword [ebp - 0xc0]
call dword [sym.imp.msvcrt.dll__wfsopen]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x49aa3b
call dword [sym.imp.msvcrt.dll__errno]
push dword [eax]
push dword [ebp - 0xc0]
push 0x40fcb8
call dword [sym.imp.msvcrt.dll_wprintf]
add esp, 0xc
jmp 0x49ad0d
cmp byte [edi + 0x816c], 0
je 0x49aa51
push dword [edi + 0x8168]
call dword [sym.imp.msvcrt.dll_fclose]
pop ecx
mov word [edi + 0x816c], 1
mov dword [edi + 0x8168], esi
cmp byte [edi + 0xe9], 0
jne 0x49aacf
push 0x10
push 0x40ed90
push dword [ebp - 0xd4]
call dword [sym.imp.msvcrt.dll__wfsopen]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x49aa9a
call dword [sym.imp.msvcrt.dll__errno]
push dword [eax]
push dword [ebp - 0xd4]
push 0x40fd38
jmp 0x49aa2d
cmp byte [ebp - 0xa6], 0
je 0x49aab0
push dword [ebp - 0xd0]
call dword [sym.imp.msvcrt.dll_fclose]
pop ecx
mov al, 1
mov word [ebp - 0xc4], 1
mov byte [ebp - 0xa6], al
mov eax, esi
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], eax
xor ebx, ebx
mov eax, dword [edi + 0x8130]
mov esi, ebx
test eax, eax
je 0x49ab11
lea ebx, [edi + 0x80f0]
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_OpenTraceW]
mov dword [ebp + esi*8 - 0xa4], eax
or eax, edx
mov dword [ebp + esi*8 - 0xa0], edx
je 0x49abfe
mov eax, dword [edi + 0x8130]
inc esi
add ebx, 4
cmp esi, eax
jb 0x49aae3
xor ebx, ebx
push ebx
push ebx
push eax
lea eax, [ebp - 0xa4]
push eax
call dword [sym.imp.ADVAPI32.dll_ProcessTrace]
mov ebx, eax
mov dword [ebp - 0xd8], ebx
test ebx, ebx
je 0x49ab43
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push 0x40fe08
call dword [sym.imp.msvcrt.dll_wprintf]
add esp, 0xc
xor ebx, ebx
mov esi, ebx
cmp dword [edi + 0x8130], ebx
jbe 0x49ab8a
push dword [ebp + esi*8 - 0xa0]
push dword [ebp + esi*8 - 0xa4]
call dword [sym.imp.ADVAPI32.dll_CloseTrace]
mov ebx, eax
mov dword [ebp - 0xd8], eax
test ebx, ebx
je 0x49ab7f
push ebx
push esi
push 0x40fe90
call dword [sym.imp.msvcrt.dll_wprintf]
add esp, 0xc
inc esi
cmp esi, dword [edi + 0x8130]
jb 0x49ab4f
xor ebx, ebx
cmp byte [edi + 0xe9], 0
jne 0x49ad07
push 0x10
push 0x40fee0
lea ecx, [ebp - 0xc8]
call fcn.00496943
xor eax, eax
cmp dword [edi + 0x8130], eax
jbe 0x49abdd
lea esi, [edi + 0x80f0]
mov eax, dword [esi]
push dword [eax]
lea eax, [ebp - 0xc8]
push 0x40b950
push eax
call fcn.00496910
add esp, 0xc
lea esi, [esi + 4]
inc ebx
cmp ebx, dword [edi + 0x8130]
jb 0x49abb9
mov ecx, dword [ebp - 0xe0]
lea esi, [edi + 0x8158]
test ecx, ecx
je 0x49ac3e
test esi, esi
je 0x49ac3e
mov eax, dword [ecx + 0x38]
mov dword [esi], eax
mov eax, dword [ecx + 0x3c]
mov dword [esi + 4], eax
jmp 0x49ac68
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push 0x40fdb8
call dword [sym.imp.msvcrt.dll_wprintf]
xor eax, eax
add esp, 0xc
mov ebx, eax
test esi, esi
je 0x49ad07
push dword [ebp + ebx*8 - 0xa0]
push dword [ebp + ebx*8 - 0xa4]
call dword [sym.imp.ADVAPI32.dll_CloseTrace]
inc ebx
cmp ebx, esi
jb 0x49ac20
jmp 0x49ad07
mov ebx, dword [0x4f5664]
test ebx, ebx
je 0x49ac68
cmp dword [0x4f5660], 0
push 0x4163c8
jne 0x49ac62
mov ecx, ebx
call dword [0x4f6d6c]
call ebx
jmp 0x49ac67
call fcn.004ba6fd
pop ecx
xor eax, eax
push eax
push 0x989680
push dword [esi + 4]
push dword [esi]
call fcn.004c5ac0
push edx
push eax
push dword [edi + 0x8148]
lea eax, [ebp - 0xc8]
push dword [edi + 0x82fc]
push dword [edi + 0x8144]
push 0x40b960
push eax
call fcn.00496910
push 0x40ba48
push 0x40ba54
push 0x40ba68
push 0x40ba7c
lea eax, [ebp - 0xc8]
push 0x40fef8
push eax
call fcn.00496910
add esp, 0x34
lea esi, [edi + 0xee]
mov ecx, esi
push dword [ebp - 0xe0]
call fcn.004b58c8
push esi
lea eax, [ebp - 0xc8]
push 0x410090
push eax
call fcn.00496910
mov al, byte [ebp - 0xc4]
add esp, 0xc
mov byte [ebp - 0xa6], al
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xd0], eax
mov bl, byte [ebp - 0xa5]
cmp byte [edi + 0xea], 0
je 0x49ad22
push 0x40bdc0
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
test bl, bl
jne 0x49ad39
push dword [ebp - 0xc0]
push 0x410144
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
pop ecx
cmp byte [edi + 0xe9], 0
jne 0x49ad55
push dword [ebp - 0xd4]
push 0x41017c
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
pop ecx
xor eax, eax
mov ebx, eax
cmp dword [edi + 0x8130], eax
jbe 0x49adab
lea esi, [edi + 0x80f0]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x49ad81
push ecx
call dword [sym.imp.msvcrt.dll_free]
mov eax, dword [esi]
pop ecx
xor ecx, ecx
mov dword [eax + 4], ecx
mov eax, dword [esi]
mov ecx, dword [eax]
test ecx, ecx
je 0x49ad97
push ecx
call dword [sym.imp.msvcrt.dll_free]
mov eax, dword [esi]
pop ecx
xor ecx, ecx
mov dword [eax], ecx
mov eax, dword [esi]
push eax
call dword [sym.imp.msvcrt.dll_free]
inc ebx
add esi, 4
pop ecx
cmp ebx, dword [edi + 0x8130]
jb 0x49ad67
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x49adc3
push eax
push 0x4101b4
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
pop ecx
cmp byte [ebp - 0xa6], 0
je 0x49add9
push dword [ebp - 0xd0]
call dword [sym.imp.msvcrt.dll_fclose]
pop ecx
lea ecx, [ebp - 0xb4]
call dword [0x4f63ac]
lea ecx, [ebp - 0xe8]
call dword [0x4f63ac]
lea ecx, [ebp - 0xdc]
call dword [0x4f63ac]
lea ecx, [ebp - 0xd4]
call dword [0x4f63ac]
lea ecx, [ebp - 0xc0]
call dword [0x4f63ac]
lea ecx, [ebp - 0xac]
call dword [0x4f63ac]
xor eax, eax
call fcn.004c5416
ret