Function at 0x10005d54
Capabilities:
Link many functions at runtime
Query environment variable
Set current directory

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [0x1000b540], eax
cmp dword [ebp + 0xc], ebx
je 0x10005d80
push 0x41c
push dword [ebp + 0xc]
push 0x1000c564
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ax, word [0x100095bc]
or dword [0x1000b538], 2
mov edx, 0x100095bc
cmp ax, bx
jge 0x10005da4
mov ecx, edx
neg word [ecx]
add ecx, 2
cmp word [ecx], bx
jne 0x10005d99
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x1000c980], eax
mov ecx, 0x100095d8
cmp byte [0x100095d8], bl
jge 0x10005dc6
mov edx, ecx
neg byte [edx]
inc edx
cmp byte [edx], bl
jne 0x10005dbf
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push ecx
push eax
call esi
mov dword [0x1000c984], eax
mov ecx, 0x100095e8
cmp byte [0x100095e8], bl
jge 0x10005deb
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10005de4
push ecx
push dword [0x1000c980]
call esi
mov dword [0x1000c988], eax
mov ecx, 0x100095f4
cmp byte [0x100095f4], bl
jge 0x10005e0f
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10005e08
push ecx
push dword [0x1000c980]
call esi
mov dword [0x1000c98c], eax
mov ecx, 0x10009604
cmp byte [0x10009604], bl
jge 0x10005e33
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10005e2c
push ecx
push dword [0x1000c980]
call esi
mov dword [0x1000c990], eax
mov ecx, 0x10009620
cmp byte [0x10009620], bl
jge 0x10005e57
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10005e50
push ecx
push dword [0x1000c980]
call esi
mov dword [0x1000c994], eax
mov eax, 0x10009630
cmp byte [0x10009630], bl
jge 0x10005e7b
mov ecx, eax
neg byte [ecx]
inc ecx
cmp byte [ecx], bl
jne 0x10005e74
push eax
push dword [0x1000c980]
call esi
mov edi, dword [0x1000c984]
mov dword [0x1000c998], eax
cmp edi, ebx
je 0x10006426
cmp dword [0x1000c988], ebx
je 0x10006426
cmp dword [0x1000c98c], ebx
je 0x10006426
cmp dword [0x1000c990], ebx
je 0x10006426
cmp dword [0x1000c994], ebx
je 0x10006426
cmp eax, ebx
je 0x10006426
mov dx, word [0x10009650]
mov ecx, 0x10009650
cmp dx, bx
jge 0x10005eed
mov eax, ecx
neg word [eax]
add eax, 2
cmp word [eax], bx
jne 0x10005ee2
push ecx
call edi
mov dword [0x1000c9a0], eax
mov ecx, 0x1000966c
cmp byte [0x1000966c], bl
jge 0x10005f0b
mov edx, ecx
neg byte [edx]
inc edx
cmp byte [edx], bl
jne 0x10005f04
push ecx
push eax
call esi
mov dword [0x1000c9ac], eax
mov ecx, 0x10009684
cmp byte [0x10009684], bl
jge 0x10005f2a
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10005f23
push ecx
push dword [0x1000c9a0]
call esi
mov dword [0x1000c9a4], eax
mov ecx, 0x10009698
cmp byte [0x10009698], bl
jge 0x10005f4e
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10005f47
push ecx
push dword [0x1000c9a0]
call esi
mov dword [0x1000c9a8], eax
cmp dword [0x1000c9ac], ebx
je 0x10006426
cmp dword [0x1000c9a4], ebx
je 0x10006426
cmp eax, ebx
je 0x10006426
mov dx, word [0x100096ac]
mov ecx, 0x100096ac
cmp dx, bx
jge 0x10005f9a
mov eax, ecx
neg word [eax]
add eax, 2
cmp word [eax], bx
jne 0x10005f8f
push ecx
call dword [0x1000c984]
mov dword [0x1000c9b0], eax
mov ecx, 0x100096c4
cmp byte [0x100096c4], bl
jge 0x10005fbc
mov edx, ecx
neg byte [edx]
inc edx
cmp byte [edx], bl
jne 0x10005fb5
push ecx
push eax
call esi
mov dword [0x1000c9b4], eax
mov ecx, 0x100096d8
cmp byte [0x100096d8], bl
jge 0x10005fdb
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10005fd4
push ecx
push dword [0x1000c9b0]
call esi
mov dword [0x1000c9b8], eax
mov ecx, 0x100096e8
cmp byte [0x100096e8], bl
jge 0x10005fff
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10005ff8
push ecx
push dword [0x1000c9b0]
call esi
mov dword [0x1000c9bc], eax
mov ecx, 0x100096fc
cmp byte [0x100096fc], bl
jge 0x10006023
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x1000601c
push ecx
push dword [0x1000c9b0]
call esi
mov dword [0x1000c9c0], eax
mov ecx, 0x10009710
cmp byte [0x10009710], bl
jge 0x10006047
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10006040
push ecx
push dword [0x1000c9b0]
call esi
mov dword [0x1000c9c4], eax
mov ecx, 0x10009724
cmp byte [0x10009724], bl
jge 0x1000606b
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10006064
push ecx
push dword [0x1000c9b0]
call esi
mov dword [0x1000c9c8], eax
mov ecx, 0x10009734
cmp byte [0x10009734], bl
jge 0x1000608f
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10006088
push ecx
push dword [0x1000c9b0]
call esi
mov dword [0x1000c9cc], eax
mov ecx, 0x10009750
cmp byte [0x10009750], bl
jge 0x100060b3
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x100060ac
push ecx
push dword [0x1000c9b0]
call esi
mov dword [0x1000c9d0], eax
cmp dword [0x1000c9b4], ebx
je 0x10006426
cmp dword [0x1000c9b8], ebx
je 0x10006426
cmp dword [0x1000c9bc], ebx
je 0x10006426
cmp dword [0x1000c9c0], ebx
je 0x10006426
cmp dword [0x1000c9c4], ebx
je 0x10006426
cmp dword [0x1000c9c8], ebx
je 0x10006426
cmp dword [0x1000c9cc], ebx
je 0x10006426
cmp eax, ebx
je 0x10006426
mov dx, word [0x1000976c]
mov ecx, 0x1000976c
cmp dx, bx
jge 0x1000613b
mov eax, ecx
neg word [eax]
add eax, 2
cmp word [eax], bx
jne 0x10006130
push ecx
call dword [0x1000c984]
mov dword [0x1000c9d4], eax
mov ecx, 0x10009780
cmp byte [0x10009780], bl
jge 0x1000615d
mov edx, ecx
neg byte [edx]
inc edx
cmp byte [edx], bl
jne 0x10006156
push ecx
push eax
call esi
mov dword [0x1000c9d8], eax
mov ecx, 0x10009798
cmp byte [0x10009798], bl
jge 0x1000617c
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x10006175
push ecx
push dword [0x1000c9d4]
call esi
mov dword [0x1000c9dc], eax
cmp dword [0x1000c9d8], ebx
je 0x10006426
cmp eax, ebx
je 0x10006426
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [0x1000c52c], eax
mov eax, dword [0x10009d80]
mov dword [0x1000b534], 0x182b8
cmp eax, ebx
jbe 0x100061cb
imul eax, eax, 0x3e8
mov dword [0x1000b534], eax
mov edi, 0x103
push edi
push 0x1000b8f0
push dword [0x1000c9f8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov cx, word [0x10009220]
mov eax, 0x10009220
cmp cx, bx
jge 0x10006200
mov edx, eax
neg word [edx]
add edx, 2
cmp word [edx], bx
jne 0x100061f5
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
push 0x1000c008
push eax
call edi
mov cx, word [0x10009230]
mov eax, 0x10009230
cmp cx, bx
jge 0x1000622d
mov edx, eax
neg word [edx]
add edx, 2
cmp word [edx], bx
jne 0x10006222
push 0x103
push 0x1000c210
push eax
call edi
push 0x1000b8f0
mov edi, 0x1000be00
push edi
call dword [sym.imp.msvcrt.dll_wcscpy]
push 0x5c
push edi
mov edi, dword [sym.imp.msvcrt.dll_wcsrchr]
call edi
add esp, 0x10
cmp eax, ebx
je 0x10006262
xor ecx, ecx
mov word [eax], cx
cmp word [0x1000be00], bx
je 0x1000627b
push 0x1000be00
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
call fcn.10005c7c
push 0x5c
push 0x1000b8f0
call edi
pop ecx
pop ecx
cmp eax, ebx
je 0x1000628f
add eax, 2
jmp 0x10006294
mov eax, 0x1000b8f0
push 0x7f
push eax
push 0x1000baf8
call dword [sym.imp.msvcrt.dll_wcsncpy]
push 0x2e
push 0x1000baf8
call edi
add esp, 0x14
cmp eax, ebx
je 0x100062b7
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x10009640
cmp byte [0x10009640], bl
jge 0x100062cd
mov eax, ecx
neg byte [eax]
inc eax
cmp byte [eax], bl
jne 0x100062c6
push ecx
push dword [0x1000c980]
call esi
mov dword [0x1000c99c], eax
mov dword [0x1000b8d8], ebx
cmp eax, ebx
je 0x100062f8
push 0x1000b8d8
push 0xffffffffffffffff
call eax
test eax, eax
jne 0x100062f8
mov dword [0x1000b8d8], ebx
mov esi, 0x1000b7c4
call fcn.10005bc5
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 4]
mov dword [ebp + 0xc], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.10005b68
pop ecx
pop ecx
mov esi, 0x1000c420
test al, al
je 0x100063a1
cmp dword [ebp + 0xc], ebx
je 0x100063b7
push dword [ebp - 8]
push dword [ebp + 0xc]
call fcn.100059a1
movzx eax, al
pop ecx
pop ecx
mov dword [0x1000b8e4], eax
cmp dword [0x1000b540], ebx
jne 0x10006362
cmp dword [ebp - 4], 2
je 0x10006358
cmp dword [ebp - 4], 1
jne 0x10006362
mov dword [0x1000b8e4], 1
lea eax, [ebp + 8]
push eax
push dword [ebp + 0xc]
mov dword [ebp + 8], ebx
call dword [0x1000c9ac]
cmp dword [ebp + 8], ebx
je 0x1000638f
push 0x7f
push dword [ebp + 8]
push esi
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [ebp - 8]
push dword [ebp + 0xc]
call fcn.10006e9a
pop ecx
pop ecx
mov dword [0x1000c520], eax
cmp dword [ebp + 0xc], ebx
je 0x100063b7
push ebx
call fcn.10001d3c
push dword [ebp + 0xc]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
pop ecx
push 0x103
push 0x1000bbf8
mov dword [ebp + 0xc], ebx
call fcn.10005d09
mov eax, dword [0x1000b540]
pop ecx
pop ecx
cmp eax, ebx
je 0x100063d9
cmp eax, 1
jne 0x100063e5
mov dword [0x1000b53c], 0x87
jmp 0x100063f0
cmp eax, 2
jne 0x100063f0
mov dword [0x1000b53c], ebx
call fcn.1000585c
cmp dword [0x1000b540], ebx
jne 0x10006422
lea eax, [ebp + 8]
push eax
push dword [0x1000b8e4]
mov dword [ebp + 8], ebx
push esi
call fcn.10003027
add esp, 0xc
cmp dword [ebp + 8], ebx
je 0x10006422
or dword [0x1000b538], 0x100
mov al, 1
jmp 0x10006428
xor al, al
pop edi
pop esi
pop ebx
leave
ret