Function at 0x1003f930
Capabilities:
Get common file path
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0xe0c]
sub esp, 0xe0c
push 0xffffffffffffffff
push 0x1004e443
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x1006c008]
xor eax, ebp
mov dword [ebp + 0xe08], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [0x1006c950]
mov eax, dword [0x1006c984]
sub ecx, dword [0x1006c980]
add eax, 0x24b7
add ecx, dword [0x1006c958]
add eax, ecx
mov dword [0x1006c984], eax
lea eax, [ebp]
push eax
push 0x703
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dx, word [0x1006c978]
mov ebx, eax
movzx eax, word [0x1006c968]
movzx ecx, dx
sub ecx, eax
mov dword [0x1006c958], ebx
cmp ecx, 0x63
jne 0x1003f9d2
mov ecx, dword [0x1006c980]
lea edi, [ecx + 5]
add edi, dword [ebp - 0x1c]
mov esi, edi
sub esi, ebx
add esi, 0xffffffb0
add esi, ecx
jmp 0x1003f9eb
mov edi, dword [ebp - 0x1c]
mov esi, 0xfffffffe
mov eax, edi
sub eax, ebx
sub eax, 9
add dx, ax
mov word [0x1006c978], dx
movzx ebx, word [0x1006c968]
add edi, 0xffffffdd
mov ecx, dword [0x1006c984]
add edi, ecx
movzx eax, dx
sub eax, ebx
mov dword [0x1006c980], esi
cmp eax, 0x63
jne 0x1003fa20
lea eax, [ecx + 5]
add eax, edi
mov dword [0x1006c984], eax
sub eax, esi
lea ebx, [eax - 0x50]
add ebx, edi
jmp 0x1003fa34
sub ecx, esi
mov ebx, 0xfffffffe
sub ecx, 9
add dx, cx
mov word [0x1006c978], dx
mov ecx, ebx
mov dword [ebp - 0x14], ebx
call fcn.10040000
mov ecx, dword [0x1006c984]
sub ecx, dword [0x1006c958]
push 0x703
add ecx, 0xffffffb0
push 0x10106b88
add eax, ecx
push str.Produc
mov dword [0x1006c950], eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov edx, dword [0x1006c984]
mov ecx, 0x1006c994
movzx eax, word [0x1006c964]
cmp ebx, eax
je 0x1003fa9a
add word [ecx], bx
mov al, dl
sub al, bl
sub ecx, 4
add al, al
sub al, 0x52
mov byte [0x1006c956], al
cmp ecx, 0x1006c960
jg 0x1003fa74
push 0
push 9
push 7
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
push 0x1005684e
push 0
call fcn.10010d0a
add esp, 8
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x54]
push 0
mov byte [ebp - 0x5c], 0
call fcn.10002ce0
mov ecx, ebx
mov dword [ebp - 4], 1
call fcn.10040000
mov dx, word [0x1006c978]
mov dword [0x1006c980], eax
movzx eax, word [0x1006c968]
movzx ecx, dx
sub ecx, eax
mov eax, dword [0x1006c950]
cmp ecx, 0x63
jne 0x1003fb17
add eax, 5
add eax, dword [0x1006c984]
mov dword [0x1006c950], eax
sub eax, ebx
add eax, 0xffffffb0
add dword [0x1006c984], eax
jmp 0x1003fb30
sub eax, ebx
mov dword [0x1006c984], 0xfffffffe
sub eax, 9
add dx, ax
mov word [0x1006c978], dx
fld qword [0x10069130]
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 0x3c], 0
push eax
fstp qword [ebp - 0x24]
call fcn.10005260
push str.Lette
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 2
call fcn.10003c40
mov byte [ebp - 4], 1
mov esi, eax
mov cl, byte [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
mov dl, byte [esi]
mov byte [esi], cl
mov ecx, dword [esi + 8]
mov byte [ebp - 0x3c], dl
mov edx, dword [esi + 0xc]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x3c]
mov dword [esi + 0xc], eax
mov dword [ebp - 0x30], edx
call fcn.10001db0
mov eax, dword [0x1006c984]
mov ecx, ebx
sub eax, dword [0x1006c980]
sub eax, 2
mov dword [0x1006c950], eax
call fcn.10040000
mov edi, dword [0x1006c984]
mov esi, eax
mov dword [0x1006c980], esi
mov edx, 0x1006c994
movzx ecx, word [0x1006c964]
cmp esi, ecx
je 0x1003fbe7
add word [edx], si
mov eax, edi
sub eax, esi
sub edx, 4
lea eax, [eax*2 - 0x52]
mov dword [ebp - 0x14], eax
cmp edx, 0x1006c960
jg 0x1003fbc0
xor edi, edi
mov byte [ebp - 0x4c], 3
push 0x18
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
call fcn.10006a61
mov esi, eax
add esp, 4
lea eax, [ebp - 0xd]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x34], eax
mov byte [ebp - 4], 4
test esi, esi
je 0x1003fc37
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], edi
cmp dword [esi + 0x14], 0x10
jb 0x1003fc24
mov eax, dword [esi]
jmp 0x1003fc26
mov eax, esi
push 4
push str.4437
mov ecx, esi
mov byte [eax], 0
call fcn.100026c0
mov dword [ebp - 0x44], esi
push str.began_Eg
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 5
call fcn.10003c40
mov cl, byte [eax]
mov byte [eax], 3
mov edx, dword [eax + 0xc]
mov byte [ebp - 0x4c], cl
mov ecx, dword [eax + 8]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0x4c]
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
mov dword [ebp - 0x40], edx
call fcn.10001db0
mov eax, dword [0x1006c950]
mov ecx, 0x20fc
cmp word [0x1006c96e], cx
mov edx, 0x1ad6
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x2c], 0
cmove eax, dword [0x1006c984]
mov dword [0x1006c950], eax
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
call fcn.100057c0
push str.Fear
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 6
call fcn.10003c40
movzx ecx, byte [ebp - 0x2c]
mov esi, eax
mov eax, dword [ebp - 0x24]
mov dl, byte [esi]
mov byte [esi], cl
mov ecx, dword [esi + 8]
mov byte [ebp - 0x2c], dl
mov edx, dword [esi + 0xc]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x2c]
mov dword [esi + 0xc], eax
mov dword [ebp - 0x20], edx
call fcn.10001db0
mov ebx, dword [0x1006c984]
mov al, bl
sub al, byte [ebp - 0x14]
mov cl, byte [0x1006c956]
sub al, 0x50
mov edx, dword [0x1006c958]
add cl, al
movzx eax, word [0x1006c954]
sub eax, edx
add ebx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ebx
sub bl, dl
add bl, cl
mov ecx, dword [ebp - 0x1c]
add bl, bl
sub bl, cl
sub bl, 0x12
add bl, al
add bl, bl
sub bl, cl
sub bl, 0x48
add bl, al
add eax, 0x24b7
add edx, eax
movzx eax, bl
mov dword [ebp - 0x18], edx
lea eax, [eax + edx*2]
mov edx, dword [ebp - 0x14]
add eax, 0x496e
sub eax, edx
add ecx, eax
movzx edi, word [0x1006c992]
mov al, cl
sub al, byte [ebp - 0x18]
add al, bl
mov dword [0x1006c984], ecx
mov ebx, dword [ebp - 0x18]
add al, al
sub al, cl
sub ecx, ebx
sub al, 0x2a
add al, dl
mov byte [ebp - 0xd], al
lea eax, [ecx*2 - 0x5b]
add eax, ecx
add ebx, 3
mov word [0x1006c954], ax
mov ecx, 0x1006c994
mov dword [ebp - 0x18], ebx
movzx esi, ax
cmp edx, edi
je 0x1003fdaa
movzx eax, word [ecx]
imul esi, eax
mov eax, esi
sub eax, ebx
add edx, eax
mov eax, dword [0x1006c9a0]
movzx eax, ax
cmp esi, eax
je 0x1003fdaa
add ecx, 2
cmp ecx, 0x1006c9d6
jl 0x1003fd83
mov al, byte [ebp - 0xd]
sub bl, 0x18
add al, al
mov dword [ebp - 0x14], edx
sub al, dl
mov ecx, edx
add al, bl
mov byte [0x1006c956], al
call fcn.10040000
mov esi, dword [0x1006c950]
lea ecx, [esi + esi]
sub ecx, eax
mov eax, dword [0x1006c984]
sub ecx, dword [ebp - 0x14]
add eax, 0xffffffb0
add ecx, eax
mov dword [0x1006c984], ecx
call fcn.10040000
mov eax, dword [ebp - 0x14]
mov ebx, esi
sub ebx, dword [ebp - 0x18]
imul ecx, esi, 0x4e
sub ebx, 0x1f
movzx edi, word [0x1006c962]
mov dword [ebp - 0x20], ecx
lea edx, [ecx + eax]
mov ecx, 0x20fc
cmp word [0x1006c99e], cx
mov cl, byte [0x1006c956]
cmove eax, esi
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x14], eax
mov al, bl
sub al, dl
sub al, 0x50
add cl, al
movzx eax, word [0x1006c954]
sub eax, edx
add ebx, eax
mov eax, dword [ebp - 0x1c]
mov dl, bl
sub dl, al
add dl, cl
add dl, dl
lea ecx, [eax*2 + 0x24b7]
sub dl, bl
mov dword [ebp - 0x18], ecx
sub dl, 0x12
lea ecx, [ecx*2 + 0x496e]
add dl, al
sub ecx, eax
add dl, dl
sub dl, bl
sub dl, 0x48
add dl, al
movzx eax, dl
add eax, ebx
mov ebx, dword [ebp - 0x18]
add ecx, eax
mov al, cl
mov dword [ebp - 0x30], ecx
sub al, bl
add al, dl
mov edx, dword [ebp - 0x1c]
add al, al
sub dl, 0x2a
sub al, cl
add al, dl
mov edx, ecx
mov byte [0x1006c956], al
mov ecx, 0x1006c964
mov eax, edx
sub eax, ebx
lea eax, [eax + eax*2]
add eax, 0xffffffa5
add ebx, 3
mov word [0x1006c954], ax
movzx eax, ax
mov dword [ebp - 0x18], ebx
mov dword [0x1006c958], ebx
mov dword [0x1006c980], eax
mov bx, word [0x1006c970]
cmp esi, edi
je 0x1003fed1
movzx eax, word [ecx]
imul edx, eax
movzx eax, bx
cmp edx, eax
je 0x1003fed1
add ecx, 2
cmp ecx, 0x1006c9a6
jl 0x1003feb5
mov edx, dword [ebp - 0x20]
add esi, 0xffffffb0
mov ecx, dword [ebp - 0x14]
add edx, ecx
mov ebx, dword [ebp - 0x18]
mov eax, edx
sub eax, ebx
mov dword [0x1006c984], edx
add eax, esi
mov esi, dword [0x1006c980]
mov dword [0x1006c950], eax
movzx eax, word [0x1006c962]
cmp eax, esi
ja 0x1003ff1b
imul ecx, edx, 0x4f
lea eax, [esi + 0x24b7]
mov word [0x1006c97a], dx
sub ecx, 9
add eax, edx
mov dword [0x1006c984], eax
mov edx, 0x1006c9c4
movzx eax, word [0x1006c994]
cmp ebx, eax
je 0x1003ff49
add word [edx], bx
mov eax, ecx
sub eax, ebx
sub edx, 4
lea eax, [eax*2 - 0x52]
mov dword [0x1006c980], eax
cmp edx, 0x1006c990
jg 0x1003ff20
mov edx, 0x1006c9c4
mov edi, edi
movzx eax, word [0x1006c994]
cmp ebx, eax
je 0x1003ff79
add word [edx], bx
mov eax, ecx
sub eax, ebx
sub edx, 4
lea eax, [eax*2 - 0x52]
mov dword [0x1006c980], eax
cmp edx, 0x1006c990
jg 0x1003ff50
call fcn.10040350
mov edx, dword [0x1006c980]
mov ecx, 0x1006c994
lea esp, [esp]
movzx eax, word [0x1006c964]
cmp edx, eax
je 0x1003ffa9
add word [ecx], dx
sub ecx, 4
cmp ecx, 0x1006c960
jg 0x1003ff90
mov eax, dword [0x1006c984]
movzx ecx, byte [0x1006c956]
add eax, 0x496e
add ecx, edx
add eax, ecx
lea ecx, [ebp - 0x5c]
mov dword [0x1006c984], eax
call fcn.10001db0
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xe08]
xor ecx, ebp
call fcn.10006a50
lea esp, [ebp + 0xe0c]
pop ebp
ret 0xc