Function at 0x49036f
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5057b2
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x5466b0]
xor eax, esp
mov dword [esp + 0x238], eax
push ebx
push esi
push edi
mov eax, dword [0x5466b0]
xor eax, esp
push eax
lea eax, [esp + 0x250]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x38], edx
cmp eax, 7
jne 0x4905e5
cmp dword [ebp + 0x10], 1
jb 0x4905dd
xor ebx, ebx
cmp edi, ebx
je 0x4905dd
push 0x54cfe0
push 0x10
call fcn.004cba2a
pop ecx
mov esi, eax
pop ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x258], ebx
cmp esi, ebx
je 0x490410
and dword [esi], ebx
mov ebx, 0x514d70
call fcn.0040c040
xor ebx, ebx
jmp 0x490412
xor esi, esi
or dword [esp + 0x258], 0xffffffff
push esi
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.0040ed50
cmp dword [esi + 4], ebx
je 0x4905dd
lea eax, [esp + 0x24]
push edi
push eax
call fcn.0046405d
pop ecx
pop ecx
mov dword [esp + 0x258], 1
mov eax, dword [esp + 0x24]
cmp dword [eax - 0xc], ebx
je 0x4905d4
lea ecx, [esp + 0x14]
call fcn.00408850
cmp dword [ebp + 0x10], 2
mov byte [esp + 0x258], 2
jb 0x4904d5
lea eax, [edi + 0xc]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.0046405d
pop ecx
pop ecx
mov byte [esp + 0x258], 3
mov ecx, dword [eax]
mov esi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4904c2
cmp dword [esi + 0xc], ebx
jl 0x4904b5
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4904b5
call fcn.00408780
mov ebx, eax
mov eax, esi
call fcn.00408830
add ebx, 0x10
mov dword [esp + 0x14], ebx
jmp 0x4904c2
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x18]
call fcn.00408500
lea ecx, [esp + 0x18]
mov byte [esp + 0x258], 2
call fcn.004087f0
jmp 0x490522
push 0x208
lea eax, [esp + 0x40]
push ebx
push eax
call fcn.004d7710
add esp, 0xc
lea eax, [esp + 0x3c]
push eax
mov esi, 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea edi, [esp + 0x14]
call fcn.00429bb0
push eax
push ebx
push str.objnet
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
or eax, 0xffffffff
mov esi, edi
call fcn.004080c0
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
cmp dword [ebx - 0xc], 0
je 0x4905cb
cmp dword [ebp + 0x10], 3
push 2
pop esi
jb 0x490543
mov ecx, dword [edi + 0x1c]
call fcn.0040c5b0
mov esi, eax
cmp dword [ebp + 0x10], 4
jb 0x490551
mov ecx, dword [edi + 0x28]
call fcn.0040c5f0
xor eax, eax
cmp dword [esp + 0x24], eax
je 0x490565
push ebx
push dword [esp + 0x28]
call fcn.00475f6f
pop ecx
pop ecx
test eax, eax
jne 0x49056e
dec esi
jne 0x490551
jmp 0x4905cb
mov edi, 0x54cfe0
push edi
push 0x3c
call fcn.004cba2a
pop ecx
pop ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x258], 4
test eax, eax
je 0x490598
push ebx
push eax
call fcn.0047395e
mov esi, eax
jmp 0x49059a
xor esi, esi
mov byte [esp + 0x258], 2
test esi, esi
je 0x4905cb
push edi
push 0x10
call fcn.004cba2a
pop ecx
pop ecx
test eax, eax
je 0x4905bf
mov dword [eax + 8], esi
mov dword [eax], 5
jmp 0x4905c1
xor eax, eax
mov ecx, dword [esp + 0x38]
push eax
call fcn.0040ed50
lea ecx, [esp + 0x14]
call fcn.004087f0
lea ecx, [esp + 0x24]
call fcn.004087f0
xor eax, eax
inc eax
jmp 0x490d3d
cmp eax, 2
jne 0x49099c
cmp dword [ebp + 0x10], 1
jne 0x4905dd
test edi, edi
je 0x4905dd
mov ebx, 0x54cfe0
push ebx
push 0x10
call fcn.004cba2a
xor edx, edx
pop ecx
pop ecx
cmp eax, edx
je 0x490622
mov dword [eax], vtable.varstream.0
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [esp + 0x14], eax
jmp 0x490626
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
push 5
pop ecx
mov dword [esp + 0x258], ecx
cmp eax, edx
je 0x49097c
mov eax, dword [edi + 4]
cmp dword [eax], ecx
jne 0x49094e
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x49094e
mov edx, dword [eax]
push 0x518438
mov ecx, eax
call dword [edx + 0x38]
mov esi, eax
cmp dword [esi + 4], 0
je 0x49094e
push ebx
push 8
call fcn.004cba2a
pop ecx
pop ecx
mov dword [esp + 0x24], eax
mov byte [esp + 0x258], 6
test eax, eax
je 0x490695
mov edi, eax
call fcn.00475cf6
jmp 0x490697
xor eax, eax
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x25c], 5
xor edi, edi
push eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
call fcn.0047652b
mov byte [esp + 0x258], 7
cmp dword [esp + 0x1c], edi
jne 0x4906e0
mov byte [esp + 0x258], 5
mov esi, dword [esp + 0x20]
cmp esi, edi
je 0x49094e
call fcn.0040bfa0
jmp 0x49094e
mov eax, dword [esi + 4]
cmp dword [eax], 1
jne 0x4906ed
mov eax, dword [eax + 8]
jmp 0x4906ef
xor eax, eax
mov ebx, 0xfde9
push ebx
lea ecx, [esp + 0x44]
push eax
lea eax, [esp + 0x44]
mov dword [esp + 0x44], ecx
call fcn.004180d0
lea eax, [esp + 0x24]
mov byte [esp + 0x258], 8
mov ecx, dword [esp + 0x3c]
push eax
call fcn.004085e0
push dword [esp + 0x1c]
lea eax, [esp + 0x28]
call fcn.00475d4f
lea ecx, [esp + 0x24]
call fcn.004087f0
lea eax, [esp + 0x40]
mov byte [esp + 0x258], 7
cmp dword [esp + 0x3c], eax
je 0x49074f
push dword [esp + 0x3c]
call fcn.004cc15e
pop ecx
mov edi, dword [esp + 0x2c]
mov eax, dword [edi]
push str.headers
mov ecx, edi
call dword [eax + 0x38]
mov eax, dword [eax + 4]
test eax, eax
je 0x490812
cmp dword [eax], 5
jne 0x490812
mov esi, dword [eax + 8]
test esi, esi
je 0x490812
mov eax, dword [esi]
and dword [esp + 0x24], 0
mov ecx, esi
call dword [eax + 0x5c]
test eax, eax
jbe 0x490812
push dword [esp + 0x24]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x34]
mov eax, dword [eax + 4]
test eax, eax
je 0x490801
cmp dword [eax], 1
jne 0x4907ae
mov eax, dword [eax + 8]
jmp 0x4907b0
xor eax, eax
push ebx
lea ecx, [esp + 0x44]
push eax
lea eax, [esp + 0x44]
mov dword [esp + 0x44], ecx
call fcn.004180d0
push ecx
mov byte [esp + 0x25c], 9
mov ecx, dword [esp + 0x40]
mov eax, esp
mov dword [esp + 0x30], esp
push eax
call fcn.004085e0
push dword [esp + 0x20]
call fcn.0049014e
lea eax, [esp + 0x40]
mov byte [esp + 0x258], 7
cmp dword [esp + 0x3c], eax
je 0x490801
push dword [esp + 0x3c]
call fcn.004cc15e
pop ecx
mov eax, dword [esi]
inc dword [esp + 0x24]
mov ecx, esi
call dword [eax + 0x5c]
cmp dword [esp + 0x24], eax
jb 0x490792
mov eax, dword [edi]
push str.timeout
mov ecx, edi
call dword [eax + 0x38]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x49082d
call fcn.0040c5f0
push eax
jmp 0x490832
push 0x1388
mov eax, dword [esp + 0x20]
call fcn.00490192
mov eax, dword [edi]
push str.postdata
mov ecx, edi
call dword [eax + 0x38]
mov eax, dword [eax + 4]
test eax, eax
je 0x490889
cmp dword [eax], 1
jne 0x490869
mov edx, dword [eax + 8]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x49085b
sub eax, esi
push edx
mov ebx, eax
jmp 0x49087c
cmp dword [eax], 6
jne 0x490889
mov eax, dword [eax + 8]
test eax, eax
je 0x490889
mov ebx, dword [eax + 0xc]
mov eax, dword [eax + 4]
push eax
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
mov eax, ecx
call fcn.0045d210
call fcn.004a4e24
test eax, eax
je 0x4908ad
push ecx
mov eax, esp
mov dword [esp + 0x30], esp
push eax
mov ecx, 0x514b40
call fcn.004085e0
push dword [esp + 0x20]
call fcn.00475e2b
xor esi, esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
push 1
push ecx
mov byte [esp + 0x260], 0xa
mov ecx, esp
mov dword [esp + 0x34], esp
call fcn.00408850
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x2c]
push eax
call fcn.00475e78
xor ecx, ecx
cmp eax, esi
setge cl
mov eax, ecx
cmp eax, esi
je 0x49091f
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x49091f
mov eax, dword [eax]
lea ebx, [esp + 0x2c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
call fcn.0045d4be
test eax, eax
je 0x49091f
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0x30], esi
ja 0x490915
test edi, edi
jbe 0x49091f
push eax
mov eax, dword [esp + 0x18]
call fcn.0047a901
mov byte [esp + 0x258], 7
mov esi, dword [esp + 0x28]
test esi, esi
je 0x490934
call fcn.0040bfa0
mov byte [esp + 0x258], 5
mov esi, dword [esp + 0x20]
test esi, esi
je 0x490949
call fcn.0040bfa0
mov ebx, 0x54cfe0
push ebx
push 0x10
call fcn.004cba2a
pop ecx
pop ecx
test eax, eax
je 0x490970
mov ecx, dword [esp + 0x14]
and dword [esp + 0x18], 0
mov dword [eax + 8], ecx
mov dword [eax], 6
jmp 0x490972
xor eax, eax
mov ecx, dword [esp + 0x38]
push eax
call fcn.0040ed50
or dword [esp + 0x258], 0xffffffff
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4905dd
mov eax, dword [ecx]
push 1
call dword [eax + 8]
jmp 0x4905dd
cmp eax, 6
jne 0x490d32
and dword [esp + 0x18], 0
cmp dword [ebp + 0x10], 1
jne 0x490cdf
test edi, edi
je 0x490cdf
mov eax, dword [edi + 4]
cmp dword [eax], 5
jne 0x490cdf
mov eax, dword [eax + 8]
mov dword [esp + 0x14], eax
test eax, eax
je 0x490cdf
mov edi, eax
mov eax, dword [edi]
push 0x518438
mov ecx, edi
call dword [eax + 0x38]
mov ebx, eax
xor esi, esi
cmp dword [ebx + 4], esi
je 0x490cdf
push 0x54cfe0
push 8
call fcn.004cba2a
pop ecx
pop ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x258], 0xb
cmp eax, esi
je 0x490a20
mov edi, eax
call fcn.00475cf6
mov edi, dword [esp + 0x14]
jmp 0x490a22
xor eax, eax
or dword [esp + 0x258], 0xffffffff
push eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
call fcn.0047652b
mov dword [esp + 0x258], 0xc
cmp dword [esp + 0x1c], esi
jne 0x490a5f
or dword [esp + 0x258], 0xffffffff
mov esi, dword [esp + 0x20]
jmp 0x490cd6
mov eax, dword [ebx + 4]
cmp dword [eax], 1
jne 0x490a6c
mov eax, dword [eax + 8]
jmp 0x490a6e
xor eax, eax
mov ebx, 0xfde9
push ebx
lea ecx, [esp + 0x44]
push eax
lea eax, [esp + 0x44]
mov dword [esp + 0x44], ecx
call fcn.004180d0
lea eax, [esp + 0x18]
mov byte [esp + 0x258], 0xd
mov ecx, dword [esp + 0x3c]
push eax
call fcn.004085e0
push dword [esp + 0x1c]
lea eax, [esp + 0x1c]
call fcn.00475d4f
lea ecx, [esp + 0x18]
call fcn.004087f0
lea eax, [esp + 0x40]
mov byte [esp + 0x258], 0xc
cmp dword [esp + 0x3c], eax
je 0x490ace
push dword [esp + 0x3c]
call fcn.004cc15e
pop ecx
mov eax, dword [edi]
push str.headers
mov ecx, edi
call dword [eax + 0x38]
mov eax, dword [eax + 4]
test eax, eax
je 0x490b7e
cmp dword [eax], 5
jne 0x490b7e
mov edi, dword [eax + 8]
test edi, edi
je 0x490b7e
mov eax, dword [edi]
mov ecx, edi
xor esi, esi
call dword [eax + 0x5c]
test eax, eax
jbe 0x490b7e
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x34]
mov eax, dword [eax + 4]
test eax, eax
je 0x490b72
cmp dword [eax], 1
jne 0x490b1f
mov eax, dword [eax + 8]
jmp 0x490b21
xor eax, eax
push ebx
lea ecx, [esp + 0x44]
push eax
lea eax, [esp + 0x44]
mov dword [esp + 0x44], ecx
call fcn.004180d0
push ecx
mov byte [esp + 0x25c], 0xe
mov ecx, dword [esp + 0x40]
mov eax, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.004085e0
push dword [esp + 0x20]
call fcn.0049014e
lea eax, [esp + 0x40]
mov byte [esp + 0x258], 0xc
cmp dword [esp + 0x3c], eax
je 0x490b72
push dword [esp + 0x3c]
call fcn.004cc15e
pop ecx
mov eax, dword [edi]
mov ecx, edi
inc esi
call dword [eax + 0x5c]
cmp esi, eax
jb 0x490b06
mov esi, dword [esp + 0x14]
mov eax, dword [esi]
push str.timeout
mov ecx, esi
call dword [eax + 0x38]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x490b9d
call fcn.0040c5f0
push eax
jmp 0x490ba2
push 0x1388
mov eax, dword [esp + 0x20]
call fcn.00490192
mov eax, dword [esi]
push str.postdata
mov ecx, esi
call dword [eax + 0x38]
mov eax, dword [eax + 4]
test eax, eax
je 0x490bff
cmp dword [eax], 1
jne 0x490bdf
mov ecx, dword [eax + 8]
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x490bcb
sub eax, edi
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
push ecx
jmp 0x490bfa
cmp dword [eax], 6
jne 0x490bff
mov eax, dword [eax + 8]
test eax, eax
je 0x490bff
mov ebx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
push eax
mov eax, ecx
call fcn.0045d210
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
and dword [esp + 0x18], 0
push str.callback
call dword [eax + 0x38]
mov edi, eax
cmp dword [edi + 4], 0
je 0x490c5d
push 0x54cfe0
push 4
call fcn.004cba2a
pop ecx
pop ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x258], 0xf
test eax, eax
je 0x490c4f
mov edi, dword [edi + 4]
cmp dword [edi], 1
jne 0x490c45
mov ecx, dword [edi + 8]
jmp 0x490c47
xor ecx, ecx
push eax
call fcn.00417170
jmp 0x490c51
xor eax, eax
mov byte [esp + 0x258], 0xc
mov dword [esp + 0x18], eax
call fcn.004a4e24
test eax, eax
je 0x490c81
push ecx
mov eax, esp
mov dword [esp + 0x28], esp
push eax
mov ecx, 0x514b40
call fcn.004085e0
push dword [esp + 0x20]
call fcn.00475e2b
mov esi, dword [esp + 0x20]
push ecx
push ecx
mov edi, esp
and dword [edi], 0
and dword [edi + 4], 0
mov dword [esp + 0x2c], esp
push dword [esp + 0x24]
mov ebx, esi
call fcn.004763af
mov byte [esp + 0x260], 0x10
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
push 0
push dword [esp + 0x24]
push eax
push ecx
call fcn.004a50d8
pop ecx
push eax
mov byte [esp + 0x270], 0xc
call fcn.004a5326
or dword [esp + 0x258], 0xffffffff
mov dword [esp + 0x18], eax
test esi, esi
je 0x490cdf
call fcn.0040bfa0
mov esi, dword [esp + 0x38]
cmp dword [esi + 4], 0
jne 0x4905dd
push 0x54cfe0
push 0x10
call fcn.004cba2a
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x258], 0x11
test ecx, ecx
je 0x490d1b
mov eax, dword [esp + 0x18]
call fcn.0041a730
jmp 0x490d1d
xor eax, eax
or dword [esp + 0x258], 0xffffffff
push eax
mov ecx, esi
call fcn.0040ed50
jmp 0x4905dd
push edx
push dword [ebp + 0x10]
push edi
push eax
call fcn.0046626b
mov ecx, dword [esp + 0x250]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x238]
xor ecx, esp
call fcn.004cb38b
mov esp, ebp
pop ebp
ret 0x10