Function at 0x105d737
Capabilities:
Get common file path
Resolve function by parsing pe exports
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x424
mov eax, dword [0x1099a38]
mov edx, dword [ebp + 8]
and dword [ebp - 0x424], 0
and dword [ebp - 0x41c], 0
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 4], eax
push 0x40
xor eax, eax
test edx, edx
mov byte [ebp - 0x20c], 0
pop ecx
lea edi, [ebp - 0x20b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x414], 0
je 0x105d7a0
push 0x208
push edx
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0xc
mov byte [ebp - 0x20d], 0
xor eax, eax
mov ecx, 0x17e
mov edi, esi
rep stosd dword es:[edi], eax
or dword [esi + 0x98], 0xffffffff
or dword [esi + 0x2a4], 0xffffffff
lea eax, [ebp - 0x414]
push eax
call fcn.01070be3
xor edi, edi
mov ebx, eax
inc edi
test ebx, ebx
je 0x105d885
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x105d85b
mov al, byte [ebx]
cmp al, 0x2d
je 0x105d7eb
cmp al, 0x2f
jne 0x105d9ce
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 2
jne 0x105d9ce
movsx eax, byte [ebx + 1]
cmp eax, 0x56
jg 0x105d925
je 0x105d98f
cmp eax, 0x4c
jg 0x105d901
je 0x105def8
sub eax, 0x21
je 0x105d8f9
dec eax
dec eax
je 0x105d8f1
dec eax
je 0x105d8e9
sub eax, 0x22
je 0x105ded9
sub eax, 3
je 0x105d95c
mov dword [esi + 0x30], edi
push 0
call fcn.01070be3
mov ebx, eax
test ebx, ebx
jne 0x105d7d2
xor eax, eax
cmp dword [ebp - 0x424], eax
je 0x105d885
cmp dword [esi + 0x2c], eax
jne 0x105d885
cmp dword [esi + 0x8c], eax
jne 0x105d885
cmp dword [esi + 0x98], 0xffffffff
jne 0x105d88e
mov dword [esi + 0x98], 0x1e
cmp dword [esi + 0x98], 0xffffffff
je 0x105d894
mov dword [esi + 0x94], edi
xor ebx, ebx
cmp dword [esi + 0x24], ebx
je 0x105d8b5
lea eax, [esi + 0x9c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x105d8a4
sub eax, edx
mov dword [ebp - 0x420], eax
jne 0x105d8d7
cmp dword [esi + 0x2c], ebx
je 0x105d8c7
cmp dword [esi + 0x40], ebx
jne 0x105d8d7
cmp dword [esi + 0x94], ebx
jne 0x105d8d7
cmp dword [esi + 0x8c], ebx
je 0x105d8da
cmp dword [esi + 0x94], ebx
je 0x105d8da
mov dword [esi + 0x30], edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0106bc50
leave
ret 8
inc dword [esi + 0x54]
jmp 0x105d84a
mov dword [esi + 0x50], edi
jmp 0x105d84a
mov dword [esi + 0x4c], edi
jmp 0x105d84a
sub eax, 0x4d
je 0x105de9c
dec eax
je 0x105df95
dec eax
je 0x105db36
dec eax
dec eax
je 0x105de99
sub eax, 4
jmp 0x105d951
cmp eax, 0x6e
jg 0x105d964
je 0x105df95
sub eax, 0x5a
je 0x105df76
sub eax, 0xc
je 0x105ded9
sub eax, 3
je 0x105d95c
sub eax, 3
je 0x105def8
dec eax
je 0x105de9c
jmp case.0x105da0b.67
mov dword [esi + 0x3c], edi
jmp 0x105d84a
sub eax, 0x6f
je 0x105db36
dec eax
dec eax
je 0x105de99
sub eax, 4
je 0x105de9c
dec eax
je 0x105d98f
sub eax, 4
jne case.0x105da0b.67
jmp 0x105df76
mov ebx, 0x104
push ebx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x105d84a
push ebx
lea eax, [ebp - 0x108]
push eax
push 0x101e5f0
push eax
call fcn.01070fc9
lea eax, [ebp - 0x108]
push eax
push 0x10149c4
jmp 0x105dba9
mov al, byte [ebx]
cmp al, 0x2d
je 0x105d9dc
cmp al, 0x2f
jne case.0x105da0b.67
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 2
je case.0x105da0b.67
lea eax, [ebx + 1]
mov dword [ebp - 0x418], eax
movsx eax, byte [eax]
add eax, 0xffffffbf
cmp eax, 0x36
ja case.0x105da0b.67
movzx eax, byte [eax + 0x105e0f1]
jmp dword [eax*4 + 0x105e0a5]
push dword [ebp - 0x418]
mov ebx, dword [sym.imp.msvcrt.dll__stricmp]
push 0x101e5dc
call ebx
test eax, eax
pop ecx
pop ecx
jne 0x105da36
mov dword [esi + 0x88], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e5cc
call ebx
jmp 0x105dcb0
push 0xa
push dword [ebp - 0x418]
push 0x101e5c0
call dword [sym.imp.msvcrt.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x105dab0
push 0x3a
push dword [ebp - 0x418]
call dword [sym.imp.msvcrt.dll_strchr]
test eax, eax
pop ecx
pop ecx
je 0x105daa7
mov ecx, eax
lea ebx, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x105da7b
sub ecx, ebx
cmp ecx, 0x103
jae 0x105daa7
inc dword [ebp - 0x41c]
cmp dword [ebp - 0x41c], edi
ja 0x105daa7
push esi
inc eax
push eax
call fcn.0105d674
jmp 0x105d84a
and dword [esi + 0x58], 0
jmp case.0x105da0b.67
push 8
push dword [ebp - 0x418]
push 0x101e5b4
call dword [sym.imp.msvcrt.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x105db00
mov al, byte [ebx + 9]
cmp al, 0x3a
je 0x105dad9
cmp al, 0x3d
jne case.0x105da0b.67
add ebx, 0xa
push ebx
push 0x100bc20
push 0x104
push 0x10bced0
mov dword [0x10bcec4], edi
call dword [sym.imp.msvcrt.dll__snprintf]
add esp, 0x10
jmp 0x105d84a
push 0xc
push dword [ebp - 0x418]
push 0x101e5a4
call dword [sym.imp.msvcrt.dll__strnicmp]
add esp, 0xc
jmp 0x105dcb2
push dword [ebp - 0x418]
push 0x101e594
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x105d8d7
mov dword [esi + 0x48], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e588
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x105db5d
mov dword [esi + 0x68], edi
jmp 0x105d84a
push 4
push dword [ebp - 0x418]
push 0x101e580
call dword [sym.imp.msvcrt.dll__strnicmp]
add esp, 0xc
test eax, eax
jne case.0x105da0b.67
mov dword [esi + 0x90], edi
jmp 0x105d84a
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 3
jne 0x105dbb4
mov bl, byte [ebx + 2]
cmp bl, 0x75
je 0x105db9f
cmp bl, 0x55
jne 0x105dbb4
push 0x101dcd0
push 0x101e568
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
jmp 0x105d84a
push 0xb
push dword [ebp - 0x418]
push 0x101e55c
call dword [sym.imp.msvcrt.dll__strnicmp]
add esp, 0xc
test eax, eax
jne case.0x105da0b.67
push 0x3a
push dword [ebp - 0x418]
call dword [sym.imp.msvcrt.dll_strchr]
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
je 0x105dc2f
push 0xa
lea eax, [ebp - 0x420]
push eax
inc ebx
push ebx
call dword [sym.imp.msvcrt.dll_strtoul]
mov ecx, dword [ebp - 0x420]
add esp, 0xc
cmp ebx, ecx
mov dword [esi + 0x98], eax
je case.0x105da0b.67
cmp byte [ecx], 0
jne case.0x105da0b.67
test eax, eax
je case.0x105da0b.67
cmp eax, 0x63
jbe 0x105d84a
jmp case.0x105da0b.67
mov dword [esi + 0x98], 0x1e
jmp 0x105d84a
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 3
jne case.0x105da0b.67
mov bl, byte [ebx + 2]
cmp bl, 0x72
je 0x105dc5f
cmp bl, 0x52
jne case.0x105da0b.67
mov dword [esi + 0x6c], edi
jmp 0x105d84a
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 4
jne case.0x105da0b.67
mov al, byte [ebx + 2]
cmp al, 0x73
je 0x105dc86
cmp al, 0x53
jne case.0x105da0b.67
mov bl, byte [ebx + 3]
cmp bl, 0x69
je 0x105dc97
cmp bl, 0x49
jne case.0x105da0b.67
mov dword [esi + 0x44], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e550
call dword [sym.imp.msvcrt.dll__stricmp]
pop ecx
pop ecx
test eax, eax
je 0x105d84a
jmp case.0x105da0b.67
mov al, byte [ebx + 2]
cmp al, 0x3a
jne 0x105dd31
push 0x41
xor eax, eax
pop ecx
lea edi, [ebp - 0x20c]
add ebx, 3
xor edx, edx
rep stosd dword es:[edi], eax
cmp byte [ebx], al
je 0x105dd0c
mov edi, 0x104
cmp edx, edi
jge 0x105dcf7
mov al, byte [ebx]
mov byte [ebp + edx - 0x20c], al
inc edx
inc ebx
cmp byte [ebx], 0
jne 0x105dce1
cmp edx, edi
jne 0x105dd0c
mov dword [esi + 0x30], 1
and dword [esi + 0x58], 0
xor edi, edi
inc edi
jmp 0x105d84a
inc dword [ebp - 0x41c]
xor eax, eax
inc eax
cmp dword [ebp - 0x41c], eax
jbe 0x105dd22
mov dword [esi + 0x30], eax
jmp 0x105dd00
push esi
lea eax, [ebp - 0x20c]
push eax
call fcn.0105d674
jmp 0x105dd04
cmp al, 0x69
je 0x105dd4b
cmp al, 0x49
je 0x105dd4b
push 5
push dword [ebp - 0x418]
push 0x101e548
jmp 0x105db6a
mov dword [esi + 0x5c], edi
mov dword [esi + 0x6c], edi
jmp 0x105de99
push dword [ebp - 0x418]
push 0x101e530
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x105dd78
mov dword [esi + 0x80], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e514
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x105dd9a
mov dword [esi + 0x84], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e4fc
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x105ddbc
mov dword [esi + 0x8c], edi
jmp 0x105d84a
call fcn.0105d585
test eax, eax
jne case.0x105da0b.67
cmp byte [ebx + 2], 0x3a
jne case.0x105da0b.67
xor ecx, ecx
lea eax, [ebx + 3]
cmp byte [eax], cl
je 0x105ddfd
mov edx, 0x103
cmp ecx, edx
jae 0x105ddf7
mov bl, byte [eax]
mov byte [esi + ecx + 0x9c], bl
inc ecx
inc eax
cmp byte [eax], 0
jne 0x105dde1
cmp ecx, edx
je case.0x105da0b.67
push 0x10bed24
lea eax, [esi + 0x9c]
push eax
call fcn.01045620
jmp 0x105df50
cmp byte [ebx + 2], 0x3a
jne case.0x105da0b.67
push 0x104
add ebx, 3
lea eax, [esi + 0x2a8]
push ebx
push eax
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0xc
jmp 0x105d84a
push dword [ebp - 0x418]
mov ebx, dword [sym.imp.msvcrt.dll__stricmp]
push 0x101e4ec
call ebx
test eax, eax
pop ecx
pop ecx
jne 0x105de5f
mov dword [esi + 0x74], edi
mov dword [esi + 0x78], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e4d8
call ebx
test eax, eax
pop ecx
pop ecx
jne case.0x105da0b.67
mov dword [esi + 0x74], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e4d0
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne case.0x105da0b.67
mov dword [esi + 0x28], edi
mov dword [esi + 0x1c], edi
jmp 0x105d84a
push dword [ebp - 0x418]
mov ebx, dword [sym.imp.msvcrt.dll__stricmp]
push 0x101e4c0
call ebx
test eax, eax
pop ecx
pop ecx
jne 0x105dec2
mov dword [esi + 0x40], edi
jmp 0x105ded9
push dword [ebp - 0x418]
push 0x101e4b0
call ebx
test eax, eax
pop ecx
pop ecx
jne case.0x105da0b.67
mov dword [esi + 0x20], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e4a4
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x105df00
mov dword [esi + 0x38], edi
jmp 0x105d84a
push 4
push dword [ebp - 0x418]
push 0x101e49c
call dword [sym.imp.msvcrt.dll__strnicmp]
add esp, 0xc
test eax, eax
jne case.0x105da0b.67
add ebx, 5
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x105df26
sub eax, edx
mov dword [ebp - 0x418], eax
je case.0x105da0b.67
push 0
lea eax, [esi + 0x3ec]
push eax
push 0x209
push ebx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
jne 0x105d84a
jmp case.0x105da0b.67
push dword [ebp - 0x418]
mov ebx, dword [sym.imp.msvcrt.dll__stricmp]
push 0x101e490
call ebx
test eax, eax
pop ecx
pop ecx
jne 0x105df7e
mov dword [esi + 0x2c], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e484
call ebx
test eax, eax
pop ecx
pop ecx
jne case.0x105da0b.67
mov dword [esi + 0x24], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e47c
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
je 0x105d98f
add ebx, 2
mov al, byte [ebx]
cmp al, 0x30
jl case.0x105da0b.67
cmp al, 0x39
jg case.0x105da0b.67
push ebx
call dword [sym.imp.msvcrt.dll_atoi]
pop ecx
push eax
call fcn.0107190c
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e474
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x105e005
mov dword [esi + 0x1c], edi
mov dword [ebp - 0x424], edi
jmp 0x105d84a
push dword [ebp - 0x418]
push 0x101e470
call dword [sym.imp.msvcrt.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x105e024
mov dword [esi + 0x70], edi
jmp 0x105d84a
push 0xb
push dword [ebp - 0x418]
push 0x101e464
call dword [sym.imp.msvcrt.dll__memicmp]
add esp, 0xc
test eax, eax
jne 0x105e060
push 0x40
add ebx, 0xc
lea eax, [esi + 0x3ac]
push ebx
push eax
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0xc
mov byte [esi + 0x3eb], 0
jmp 0x105dc5f
mov ebx, dword [sym.imp.msvcrt.dll__strnicmp]
push 8
push dword [ebp - 0x418]
push 0x101e458
call ebx
add esp, 0xc
test eax, eax
je 0x105db7b
push 0xd
push dword [ebp - 0x418]
push 0x101e448
call ebx
add esp, 0xc
test eax, eax
jne case.0x105da0b.67
mov dword [esi + 0x94], edi
jmp 0x105d84a