Function at 0x404190
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46662c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3f8
mov eax, dword [0x487cdc]
push ebx
push esi
mov dword [esp + 0xc], ecx
push edi
lea ecx, [esp + 0x70]
mov dword [esp + 0x3fc], eax
call fcn.0042e980
xor eax, eax
xor ebx, ebx
mov byte [esp + 0xe8], bl
mov ecx, 0xc2
lea edi, [esp + 0xe9]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0xe8]
push eax
push 0x30c
mov dword [esp + 0x414], ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, ebx
ja 0x40425d
cmp dword [esp + 0xd4], 0x10
mov dword [esp + 0x40c], 0xffffffff
mov dword [esp + 0x70], 0x46f9c8
jb 0x404234
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.0045ce75
add esp, 4
lea ecx, [esp + 0x70]
mov dword [esp + 0xd4], 0xf
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
call fcn.0042d1d0
xor al, al
jmp 0x4045ee
push eax
lea edx, [esp + 0xec]
mov edi, 0xf
push edx
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.00403bf0
push 0xb
push str.WindWeb.sys
lea ecx, [esp + 0x24]
mov byte [esp + 0x414], 1
call fcn.00403850
push ebx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x78]
call fcn.00402b00
test al, al
je 0x40457e
lea ecx, [esp + 0x70]
call fcn.0042cb40
cmp eax, ebx
jne 0x4042f7
cmp dword [esp + 0x34], 0x10
jb 0x4042d0
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0045ce75
add esp, 4
lea ecx, [esp + 0x70]
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
mov dword [esp + 0x40c], 0xffffffff
call fcn.004033f0
xor al, al
jmp 0x4045ee
mov ecx, eax
call fcn.0042cb40
mov esi, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
cmp esi, ebx
mov byte [esp + 0x40c], 3
je 0x4044b3
jmp 0x404332
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.0042cf10
mov edx, dword [esi + 0x34]
push 6
add esi, 0x20
push str.KMSUrl
push edx
push ebx
mov ecx, esi
mov edi, eax
call fcn.00402da0
test eax, eax
jne 0x404399
cmp edi, ebx
je 0x40436f
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x404360
sub eax, edx
mov dword [esp + 0x18], eax
jne 0x404374
mov edi, 0x46fa3c
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x404380
sub eax, edx
push eax
push edi
lea ecx, [esp + 0x40]
call fcn.00403bf0
jmp 0x404499
mov eax, dword [esi + 0x14]
push 7
push str.KMSPort
push eax
push ebx
mov ecx, esi
call fcn.00402da0
test eax, eax
jne 0x4043f9
cmp edi, ebx
je 0x4043cf
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4043c0
sub eax, edx
mov dword [esp + 0x18], eax
jne 0x4043d4
mov edi, 0x46fa30
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4043e0
sub eax, edx
push eax
push edi
lea ecx, [esp + 0x5c]
call fcn.00403bf0
jmp 0x404499
mov ecx, dword [esi + 0x14]
push 6
push str.DBPort
push ecx
push ebx
mov ecx, esi
call fcn.00402da0
test eax, eax
jne 0x404455
cmp edi, ebx
je 0x404444
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x404420
sub eax, edx
mov dword [esp + 0x18], eax
je 0x404444
push edi
call fcn.004471d5
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [edx + 0x144], eax
jmp 0x404499
mov edx, dword [esp + 0x10]
mov eax, 0xcea
mov dword [edx + 0x144], eax
jmp 0x404499
push str.WebPort
push esi
call fcn.004031b0
add esp, 8
test al, al
je 0x404499
cmp edi, ebx
je 0x40448a
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x404470
sub eax, edx
mov dword [esp + 0x18], eax
je 0x40448a
push edi
call fcn.004471d5
add esp, 4
jmp 0x40448f
mov eax, 0x50
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x14]
call fcn.0042cb70
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x40432e
mov edi, 0xf
mov esi, dword [esp + 0x10]
push 7
add esi, 0x1c
push str.http:__
mov ecx, esi
call fcn.00403bf0
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call fcn.00403760
push 1
push 0x46fa14
mov ecx, esi
call fcn.00403850
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x5c]
push eax
mov ecx, esi
call fcn.00403760
push 1
push 0x46fa10
mov ecx, esi
call fcn.00403850
mov eax, dword [esp + 0x6c]
mov esi, 0x10
cmp eax, esi
jb 0x40451c
mov ecx, dword [esp + 0x58]
push ecx
call fcn.0045ce75
add esp, 4
cmp dword [esp + 0x50], esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
jb 0x40453b
mov edx, dword [esp + 0x3c]
push edx
call fcn.0045ce75
add esp, 4
cmp dword [esp + 0x34], esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
jb 0x40455a
mov eax, dword [esp + 0x20]
push eax
call fcn.0045ce75
add esp, 4
lea ecx, [esp + 0x70]
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
mov dword [esp + 0x40c], 0xffffffff
call fcn.004033f0
mov al, 1
jmp 0x4045ee
mov eax, dword [esp + 0x34]
mov esi, 0x10
cmp eax, esi
jb 0x404598
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0045ce75
add esp, 4
cmp dword [esp + 0xd4], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
mov dword [esp + 0x40c], 0xffffffff
mov dword [esp + 0x70], 0x46f9c8
jb 0x4045d0
mov edx, dword [esp + 0xc0]
push edx
call fcn.0045ce75
add esp, 4
lea ecx, [esp + 0x70]
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
call fcn.0042d1d0
mov ecx, dword [esp + 0x404]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x3fc]
call fcn.00446654
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret