Function at 0x1001e29b
Capabilities:
Query environment variable

Disassembly:
mov eax, 0x10087501
call fcn.10086d10
sub esp, 0x80
cmp byte [ebp + 0xc], 0
push ebx
push esi
push edi
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
je 0x1001e4e2
xor esi, esi
xor ebx, ebx
inc esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0xfffffff6
jle 0x1001e30a
push 8
pop eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x24], 0xf
jmp 0x1001e2fc
mov dword [ebp + 0xc], 0xffffffff
mov dword [ebp + 0xc], ebx
jmp 0x1001e2f3
mov dword [ebp - 0x28], esi
dec dword [ebp - 0x28]
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 0x12
jne 0x1001e2ea
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], eax
jg 0x1001e2de
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff6
jg 0x1001e2d2
mov eax, 0xffff
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x18], 0x2c36544d
mov dword [ebp - 0x14], 0x19a6fdd8
mov dword [ebp - 0x1c], 0x790660d6
mov dword [ebp - 0x30], 0xbdccb4f7
cmp dword [ebp - 0x64], ebx
jne 0x1001e34b
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
inc eax
add eax, ecx
imul eax, dword [ebp - 0x1c]
test eax, eax
je 0x1001e385
cmp dword [ebp - 0x1c], ebx
je 0x1001e385
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], bl
je 0x1001e4d8
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
jmp 0x1001e4d8
push dword [ebp + 0xc]
movdqa xmm0, xmmword [0x1000c9d0]
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x20], 5
push eax
mov dword [ebp - 0x28], 0x4322e7c6
lea ecx, [ebp - 0x5c]
push ebx
movdqu xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
call fcn.1001cdeb
push 3
mov dword [ebp - 0x14], ebx
pop edi
jmp 0x1001e466
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x1001e45a
mov dword [ebp + 0xc], 6
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x6c], ebx
je 0x1001e3f7
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], bl
je 0x1001e457
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1001e457
mov dword [ebp + 0xc], 0xc8a81d5f
mov dword [ebp - 0x2c], 0xe74fd574
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], bl
je 0x1001e414
push ebx
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov dword [ebp + 0xc], 0xa966896e
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x60]
sub ecx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0xc]
cmp eax, ecx
setle dl
sub edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
mov dword [ebp + 0xc], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x1001e3d7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x1001e3c8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x64]
jl 0x1001e480
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x68]
cmp eax, ecx
mov eax, dword [ebp - 0x5c]
setle dl
xor ecx, ecx
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x14]
cmp eax, edx
setl cl
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setne dl
cmp edx, dword [ebp - 0x20]
jg 0x1001e4b5
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x14], eax
jl 0x1001e4cb
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0xc], ebx
je 0x1001e4cd
mov ebx, esi
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x28], ebx
call fcn.1001c062
mov eax, dword [ebp + 8]
dec dword [eax]
jmp 0x1001e956
push 1
pop esi
push 0
pop ebx
mov dword [ebp - 0x1c], 0xb9f9b319
push 3
mov dword [ebp - 0x28], 0xed99ea7
mov dword [ebp - 0x1c], 0xffffffe8
pop edi
jmp 0x1001e5ad
mov dword [ebp + 0xc], 0xfe5f36f6
mov dword [ebp + 0xc], ebx
jmp 0x1001e522
mov eax, dword [ebp + 0xc]
mov dword [ebp + eax*4 - 0x8c], 0xfffffff8
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 4
jl 0x1001e511
mov eax, dword [ebp - 0x84]
mov ecx, 0xbd13d8c5
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
imul eax, dword [ebp - 0x28], 0x8e13
cmp dword [ebp - 0x1c], eax
jg 0x1001e55c
mov eax, ebx
cmp dword [ebp - 0x84], ebx
je 0x1001e55e
mov eax, esi
imul ecx, eax, 0x11c3
xor edx, edx
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp + 0xc]
setge dl
sub edx, 0x42bb
neg edx
sbb edx, edx
neg eax
sbb eax, eax
inc eax
cmp eax, edx
jne 0x1001e59a
mov dword [ebp + 0xc], edi
cmp dword [ebp + 0xc], ebx
jl 0x1001e5aa
mov dword [ebp - 0x28], 0x617a9413
dec dword [ebp + 0xc]
jns 0x1001e58c
jmp 0x1001e5aa
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x1001e5aa
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffee
jge 0x1001e505
mov dword [ebp - 0x24], 0xf6af1124
mov dword [ebp - 0x24], 6
jmp 0x1001e5f0
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x1001e5dd
push 0x18bc
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x1001e5ed
push ebx
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffef
jg 0x1001e5c7
push esi
lea ecx, [ebp - 0x50]
call fcn.1001b841
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x7c9d5fac
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], 0xcb4e76ab
push 4
call fcn.1001b841
mov dword [ebp + 0xc], 0xfffffffa
mov dword [ebp - 0x30], 0x9adb
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], ebx
jmp 0x1001e646
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x50]
mov dword [eax + ecx*4], 0x1f665683
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x1001e636
mov dword [ebp - 0x18], ebx
jmp 0x1001e660
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x44]
mov dword [eax + ecx*4], 0xa9864ba8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x1001e650
dec dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jne 0x1001e6b1
cmp dword [ebp - 0x28], ebx
je 0x1001e681
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x20], ebx
je 0x1001e684
mov dword [ebp - 0x18], esi
mov ecx, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x18]
push 1
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x50]
cmp esi, dword [eax]
mov eax, dword [ebp - 0x1c]
setle dl
add edx, ecx
xor ecx, ecx
cmp edx, eax
pop esi
setge cl
add ecx, dword [ebp + 0xc]
mov dword [ebp + 0xc], ebx
je 0x1001e6b4
mov dword [ebp + 0xc], esi
mov eax, dword [ebp - 0x50]
xor ecx, ecx
mov edx, dword [eax]
mov eax, dword [ebp - 0x28]
cmp dword [ebp + 0xc], eax
setge cl
xor eax, eax
cmp edx, ecx
sete al
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x20]
jne 0x1001e6e5
mov ecx, ebx
cmp dword [ebp - 0x14], ebx
je 0x1001e6e7
mov ecx, esi
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
sub eax, ecx
cmp eax, dword [ebp - 0x28]
jg 0x1001e802
mov dword [ebp - 0x18], 0xe8dce9db
mov dword [ebp - 0x28], 0xaee4
mov dword [ebp + 0xc], 0x98381653
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], edi
jg 0x1001e919
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov ecx, dword [ebp - 0x44]
setne dl
xor eax, eax
cmp edx, dword [ecx + esi*4]
mov edx, dword [ecx + edi*4]
setl al
sub edx, eax
mov eax, dword [ebp + 0xc]
sub edx, dword [ecx + eax*4]
xor ecx, ecx
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
add eax, 0xd436f9c8
add eax, edx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp + 0xc]
cmp eax, dword [edx + esi*4]
mov eax, dword [ebp - 0x30]
setge cl
cmp ecx, dword [eax + 4]
jne 0x1001e7b3
cmp dword [ebp - 0x20], ebx
je 0x1001e7b3
xor esi, esi
inc esi
mov edi, esi
jmp 0x1001e7b8
xor esi, esi
mov edi, ebx
inc esi
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x44]
sub edi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
cmp edi, esi
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x44]
mov dword [eax + edx*4], ecx
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x1001e7f0
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jle 0x1001e71e
jmp 0x1001e919
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp + 0xc], 0xfffffff1
cmp dword [ebp + 0xc], 0x20
jg 0x1001e8d9
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
sub eax, 0xebcd
neg eax
sbb eax, eax
inc eax
cmp eax, 0xfffffffa
jg 0x1001e845
mov eax, ebx
cmp dword [ebp - 0x24], ebx
je 0x1001e847
mov eax, esi
mov dword [ebp - 0x20], eax
xor edx, edx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setg dl
sub eax, edx
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
je 0x1001e884
mov eax, dword [ebp - 0x2c]
sub eax, 0x34bea37b
jne 0x1001e880
cmp dword [ebp - 0x1c], ebx
je 0x1001e884
mov eax, esi
jmp 0x1001e886
mov eax, ebx
mov ecx, dword [ebp - 0x30]
add eax, 0xa1d0
xor edx, edx
mov dword [ebp - 0x18], 0x83d52604
cmp eax, dword [ecx + 0xc]
mov eax, dword [ebp - 0x24]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x50]
setne cl
xor edx, edx
cmp ecx, dword [eax]
mov eax, dword [ebp - 0x2c]
setge dl
mov dword [ebp - 0x28], edx
xor edx, edx
cmp dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x24], ecx
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 0x20
jle 0x1001e823
mov dword [ebp - 0x18], ebx
jmp 0x1001e913
mov dword [ebp - 0x1c], ebx
jmp 0x1001e90a
mov dword [ebp + 0xc], 0x5eb91548
mov dword [ebp + 0xc], ebx
jmp 0x1001e8ff
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x50]
mov dword [eax + ecx*4], 0xe582b275
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], esi
jl 0x1001e8ef
mov dword [ebp + 0xc], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 5
jl 0x1001e8e3
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffe5
jg 0x1001e8de
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x1001e929
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x44]
call fcn.1001c062
lea ecx, [ebp - 0x50]
call fcn.1001c062
mov edx, dword [ebp - 0x34]
mov dword [edx], ebx
cmp dword [edx], esi
jge 0x1001e956
mov edi, dword [ebp - 0x38]
mov ecx, dword [edx]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [edx]
cmp dword [edx], esi
jl 0x1001e945
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret