Function at 0x1039f10
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1069860
mov eax, dword fs:[0]
push eax
sub esp, 0x8f0
mov eax, dword [0x1082004]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x8be
call fcn.0100370a
mov edx, dword [ebp - 0x8f0]
add esp, 4
mov edi, dword [0x1082980]
xor esi, esi
mov ecx, dword [ebp - 0x8f4]
sub edi, dword [0x10829d0]
shld edx, ecx, 1
add edi, 0x164d2
mov dword [ebp - 0x8f8], eax
add ecx, ecx
add edi, ecx
push eax
adc esi, edx
push 0x8be
mov dword [ebp - 0x8f0], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
cmp dword [0x10829b0], 0x437
mov dword [ebp - 0x8fc], eax
jne 0x1039fb4
mov dword [ebp - 0x8ec], 0xfffec855
mov dword [ebp - 0x8f0], 0xffffffff
jmp 0x1039fca
mov eax, dword [0x10828fc]
mov dword [ebp - 0x8f0], eax
mov eax, dword [0x10828f8]
mov dword [ebp - 0x8ec], eax
mov edx, dword [0x10829d0]
mov ecx, dword [0x1082980]
add edx, edi
add edx, ecx
cmp dword [ebp - 0x8f0], 0
mov esi, edx
jb 0x103a005
mov eax, dword [ebp - 0x8ec]
ja 0x1039ff1
cmp eax, edx
jb 0x103a005
sub dword [0x1082928], ecx
sbb dword [0x108292c], 0
sub eax, ecx
lea edx, [eax - 0x5b]
mov esi, edx
mov edi, dword [0x1082950]
mov ecx, dword [0x1082980]
mov dword [ebp - 0x8f0], 3
nop dword [eax + eax]
cmp esi, edi
jne 0x103a034
xor eax, eax
cmp eax, dword [0x1082954]
mov eax, dword [ebp - 0x8f0]
je 0x103a067
lea eax, [ecx - 4]
mov dword [0x10828fc], 0
add eax, edx
mov dword [ebp - 0x8ec], eax
mov eax, dword [ebp - 0x8f0]
cmp ecx, dword [0x1082948]
jne 0x103a067
xor edi, edi
cmp edi, dword [0x108294c]
mov edi, dword [0x1082950]
je 0x103a075
add eax, 2
mov dword [ebp - 0x8f0], eax
cmp eax, 0x20
jl 0x103a020
mov ecx, dword [ebp - 0x8ec]
add dl, 0x2c
mov eax, dword [0x10828f4]
add dl, dl
add dl, cl
mov dword [0x10828fc], 0
add dl, al
mov esi, ecx
sub esi, eax
mov dword [ebp - 0x8f0], edx
movzx eax, dl
sub esi, 0x137ab
sub ecx, eax
mov eax, dword [ebp - 0x8f0]
sub ecx, 0x137a7
mov edx, ecx
sub edx, esi
sub edx, 0x5b
sub al, dl
sub al, byte [ebp - 0x8ec]
add al, 0xb
mov byte [0x1082984], al
lea eax, [esi + ecx]
lea ecx, [eax*2 + 0x164ca]
mov eax, dword [0x10828f4]
add eax, dword [ebp - 0x8ec]
sub ecx, edx
add eax, dword [ebp - 0x8ec]
push 0x8be
mov dword [0x10829d0], ecx
lea eax, [eax*2 + 0x164c2]
sub eax, esi
mov dword [0x10828f4], eax
add eax, 0xfffffffc
add eax, ecx
mov dword [0x10828f8], eax
lea eax, [ebp - 0x8d0]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edx, eax
xor eax, eax
mov dword [ebp - 0x8f0], eax
mov dword [0x10828fc], eax
mov eax, dword [0x10829a4]
add eax, dword [0x10829a8]
mov dword [0x10828f8], edx
cmp eax, 0x26c
je 0x103a152
sub edx, dword [0x10829d0]
sub edx, 0x137ab
mov dword [0x10829d0], edx
push dword [ebp - 0x8f8]
lea ecx, [ebp - 0x8e8]
mov dword [ebp - 0x8d8], 0
mov dword [ebp - 0x8d4], 0xf
mov byte [ebp - 0x8e8], 0
call fcn.01002750
mov dword [ebp - 4], 0
lea edi, [ebp - 0x8d0]
mov eax, 0xb
lea ecx, [edi + 1]
sub eax, dword [0x10828f8]
sub eax, dword [0x1082980]
add dword [0x10829d0], eax
mov al, byte [edi]
inc edi
test al, al
jne 0x103a1a5
mov edx, dword [ebp - 0x8d4]
sub edi, ecx
mov ecx, dword [ebp - 0x8d8]
mov eax, edx
sub eax, ecx
push edi
cmp edi, eax
ja 0x103a1f4
lea eax, [ecx + edi]
cmp edx, 0x10
mov dword [ebp - 0x8d8], eax
lea esi, [ebp - 0x8e8]
cmovae esi, dword [ebp - 0x8e8]
lea eax, [ebp - 0x8d0]
add esi, ecx
push eax
push esi
call fcn.0100d260
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x103a214
lea eax, [ebp - 0x8d0]
mov byte [ebp - 0x8f8], 0
push eax
push dword [ebp - 0x8f8]
lea ecx, [ebp - 0x8e8]
push edi
call fcn.01002cc0
mov esi, dword [0x10829d0]
mov edi, dword [ebp - 0x8fc]
mov ecx, edi
add esi, edi
call fcn.0103a440
sub esi, edi
add esi, 0xffffffa1
mov ecx, esi
mov dword [0x10829d0], esi
call fcn.0103a440
mov ecx, dword [ebp - 0x8d8]
add ecx, esi
mov esi, dword [0x10829d0]
lea edi, [esi + 0x1652d]
add edi, ecx
cmp dword [0x1082900], 2
jne 0x103a26a
cmp dword [0x1082904], 0
jne 0x103a26a
sub esi, eax
sub esi, 0x59
jmp 0x103a26f
add esi, 0xfffffff8
add esi, eax
mov eax, dword [0x10829a4]
xor edx, edx
add eax, dword [0x10829a8]
mov dword [0x10828f8], esi
mov dword [0x10828fc], edx
mov dword [ebp - 0x8fc], eax
cmp eax, 0x26c
jne 0x103a2ae
mov eax, 0xffffffe7
sub eax, esi
mov dword [ebp - 0x8f0], eax
mov eax, edx
sbb eax, edx
mov dword [ebp - 0x8ec], eax
jmp 0x103a2db
mov eax, 0xfffec895
mov dword [ebp - 0x8f0], 0xffffffa7
sub eax, esi
mov dword [ebp - 0x8ec], 0xffffffff
mov ecx, edx
mov esi, eax
sbb ecx, edx
mov dword [0x10828f8], esi
mov dword [0x10828fc], ecx
mov ecx, edi
call fcn.0103a440
mov ecx, dword [0x10829d0]
xor edx, edx
cmp edx, dword [ebp - 0x8ec]
jb 0x103a311
ja 0x103a2fe
mov eax, dword [ebp - 0x8f0]
cmp ecx, eax
jb 0x103a317
sub dword [0x1082928], ecx
mov eax, 0xffffffa5
sbb dword [0x108292c], edx
jmp 0x103a317
mov eax, dword [ebp - 0x8f0]
add eax, 0x5c
add eax, esi
add eax, ecx
cmp dword [0x1082940], 0x437
mov dword [0x10829d0], eax
jne 0x103a341
cmp dword [0x1082944], edx
jne 0x103a341
mov dword [0x10829d0], 0xfffec855
cmp dword [ebp - 0x8fc], 0x26c
jne 0x103a354
sub edi, esi
sub edi, 0x59
jmp 0x103a377
lea eax, [edi - 0x137ab]
xor edx, edx
sub eax, esi
mov edi, 0xffffffa7
mov esi, eax
sbb edx, dword [0x10828fc]
mov dword [0x10828f8], esi
mov dword [0x10828fc], edx
mov ecx, esi
mov dword [0x1082980], edi
call fcn.01001510
mov esi, dword [0x10828fc]
mov ecx, dword [0x10829d0]
mov edx, dword [0x10828f8]
test esi, esi
jb 0x103a3bf
ja 0x103a3a0
cmp edx, ecx
jb 0x103a3bf
mov eax, dword [0x1082980]
mov ecx, edx
sub dword [0x1082928], eax
sbb dword [0x108292c], 0
sub ecx, eax
sub ecx, 0x5b
mov dword [0x10829d0], ecx
lea eax, [ecx + 0x9c]
add edx, eax
mov dword [0x10828f8], edx
mov edx, dword [ebp - 0x8d4]
adc esi, 0
mov dword [0x10828fc], esi
cmp edx, 0x10
jb 0x103a40c
mov ecx, dword [ebp - 0x8e8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x103a402
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x103a42e
push edx
push ecx
call fcn.010036fc
add esp, 8
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.010036bb
mov esp, ebp
pop ebp
ret 0xc
call fcn.0100ef91
int3