Function at 0x530d50
Capabilities:
Get common file path
Link many functions at runtime

Disassembly:
push 0xffffffffffffffff
push 0x65c891
mov eax, dword fs:[0]
push eax
sub esp, 0x798
mov eax, dword [0x758898]
xor eax, esp
mov dword [esp + 0x794], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x758898]
xor eax, esp
push eax
lea eax, [esp + 0x7ac]
mov dword fs:[0], eax
mov eax, dword [esp + 0x7bc]
mov dl, 0xf4
mov cl, 0xe5
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x7c4]
mov bl, 0xf5
mov dword [esp + 0x28], eax
mov byte [eax], 0
mov al, 0xf2
mov byte [esp + 0xa9], bl
mov byte [esp + 0xcb], bl
mov bl, 0xef
xor esi, esi
mov byte [esp + 0x17], 0
mov byte [esp + 0xa4], 0xf7
mov byte [esp + 0xa5], 0xe9
mov byte [esp + 0xa6], 0xee
mov byte [esp + 0xa7], dl
mov byte [esp + 0xa8], al
mov byte [esp + 0xaa], 0xf3
mov byte [esp + 0xab], dl
mov byte [esp + 0xac], 0xae
mov byte [esp + 0xad], 0xe4
mov byte [esp + 0xae], 0xec
mov byte [esp + 0xaf], 0xec
mov byte [esp + 0xb0], 0
mov byte [esp + 0xc0], 0xd7
mov byte [esp + 0xc1], 0xe9
mov byte [esp + 0xc2], 0xee
mov byte [esp + 0xc3], 0xd6
mov byte [esp + 0xc4], cl
mov byte [esp + 0xc5], al
mov byte [esp + 0xc6], 0xe9
mov byte [esp + 0xc7], 0xe6
mov byte [esp + 0xc8], 0xf9
mov byte [esp + 0xc9], 0xd4
mov byte [esp + 0xca], al
mov byte [esp + 0xcc], 0xf3
mov byte [esp + 0xcd], dl
mov byte [esp + 0xce], 0
mov byte [esp + 0x118], 0xd7
mov byte [esp + 0x119], 0xd4
mov byte [esp + 0x11a], 0xc8
mov byte [esp + 0x11b], cl
mov byte [esp + 0x11c], 0xec
mov byte [esp + 0x11d], pe_nt_image_headers32
mov byte [esp + 0x11e], cl
mov byte [esp + 0x11f], al
mov byte [esp + 0x120], 0xd0
mov byte [esp + 0x121], al
mov byte [esp + 0x122], bl
mov byte [esp + 0x123], 0xf6
mov byte [esp + 0x124], 0xc4
mov byte [esp + 0x125], 0xe1
mov byte [esp + 0x126], dl
mov byte [esp + 0x127], 0xe1
mov byte [esp + 0x128], 0xc6
mov byte [esp + 0x129], al
mov byte [esp + 0x12a], bl
mov byte [esp + 0x12b], 0xed
mov byte [esp + 0x12c], 0xd3
mov byte [esp + 0x12d], dl
mov byte [esp + 0x12e], 0xe1
mov byte [esp + 0x12f], dl
mov byte [esp + 0x130], cl
mov byte [esp + 0x131], 0xc4
mov byte [esp + 0x132], 0xe1
mov byte [esp + 0x133], dl
mov byte [esp + 0x134], 0xe1
mov byte [esp + 0x135], 0
mov byte [esp + 0x138], 0xd7
mov byte [esp + 0x139], 0xd4
mov byte [esp + 0x13a], 0xc8
mov byte [esp + 0x13b], cl
mov byte [esp + 0x13c], 0xec
mov byte [esp + 0x13d], pe_nt_image_headers32
mov byte [esp + 0x13e], cl
mov byte [esp + 0x13f], al
mov byte [esp + 0x140], 0xc7
mov byte [esp + 0x141], cl
mov byte [esp + 0x142], dl
mov byte [esp + 0x143], 0xd0
mov byte [esp + 0x144], al
mov byte [esp + 0x145], bl
mov byte [esp + 0x146], 0xf6
mov byte [esp + 0x147], 0xd3
mov byte [esp + 0x148], 0xe9
mov byte [esp + 0x149], 0xe7
mov byte [esp + 0x14a], 0xee
mov byte [esp + 0x14b], cl
mov byte [esp + 0x14c], al
mov byte [esp + 0x14d], 0xc6
mov byte [esp + 0x14e], al
mov byte [esp + 0x14f], bl
mov byte [esp + 0x150], 0xed
mov byte [esp + 0x151], 0xc3
mov byte [esp + 0x152], 0xe8
mov byte [esp + 0x153], 0xe1
mov byte [esp + 0x154], 0xe9
mov byte [esp + 0x155], 0xee
mov byte [esp + 0x156], 0
mov byte [esp + 0xf8], 0xd7
mov byte [esp + 0xf9], 0xd4
mov byte [esp + 0xfa], 0xc8
mov byte [esp + 0xfb], cl
mov byte [esp + 0xfc], 0xec
mov byte [esp + 0xfd], pe_nt_image_headers32
mov byte [esp + 0xfe], cl
mov byte [esp + 0xff], al
mov byte [esp + 0x100], 0xc7
mov byte [esp + 0x101], cl
mov byte [esp + 0x102], dl
mov byte [esp + 0x103], 0xd0
mov byte [esp + 0x104], al
mov byte [esp + 0x105], bl
mov byte [esp + 0x106], 0xf6
mov byte [esp + 0x107], 0xc3
mov byte [esp + 0x108], cl
mov byte [esp + 0x109], al
mov byte [esp + 0x10a], dl
mov byte [esp + 0x10b], 0xc6
mov byte [esp + 0x10c], al
mov byte [esp + 0x10d], bl
mov byte [esp + 0x10e], 0xed
mov byte [esp + 0x10f], 0xc3
mov byte [esp + 0x110], 0xe8
mov byte [esp + 0x111], 0xe1
mov byte [esp + 0x112], 0xe9
mov byte [esp + 0x113], 0xee
mov byte [esp + 0x114], 0
mov byte [esp + 0x98], 0xc3
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], 0xf9
mov byte [esp + 0x9b], pe_nt_image_headers32
mov byte [esp + 0x9c], dl
mov byte [esp + 0x9d], 0xb3
mov byte [esp + 0x9e], 0xb2
mov byte [esp + 0x9f], 0xae
mov byte [esp + 0xa0], 0xe4
mov byte [esp + 0xa1], 0xec
mov byte [esp + 0xa2], 0xec
mov byte [esp + 0xa3], 0
mov byte [esp + 0xe4], 0xc3
mov byte [esp + 0xe5], cl
mov byte [esp + 0xe6], al
mov byte [esp + 0xe7], dl
mov byte [esp + 0xe8], 0xc7
mov byte [esp + 0xe9], cl
mov byte [esp + 0xea], dl
mov byte [esp + 0xeb], 0xce
mov byte [esp + 0xec], 0xe1
mov byte [esp + 0xed], 0xed
mov byte [esp + 0xee], cl
mov byte [esp + 0xef], 0xd3
mov byte [esp + 0xf0], dl
mov byte [esp + 0xf1], al
mov byte [esp + 0xf2], 0xe9
mov byte [esp + 0xf3], 0xee
mov byte [esp + 0xf4], 0xe7
mov byte [esp + 0xf5], 0xd7
mov byte [esp + 0xf6], 0
mov byte [esp + 0xb4], 0xd4
mov byte [esp + 0xb7], cl
mov cl, 0xe3
mov byte [esp + 0xd3], al
lea eax, [esp + 0xa4]
mov byte [esp + 0xb8], cl
mov byte [esp + 0xbc], cl
mov byte [esp + 0xd2], cl
mov byte [esp + 0xb5], bl
mov byte [esp + 0xb6], 0xee
mov byte [esp + 0xb9], 0xa0
mov byte [esp + 0xba], 0xc9
mov byte [esp + 0xbb], 0xee
mov byte [esp + 0xbd], 0xae
mov byte [esp + 0xbe], 0
mov byte [esp + 0xd0], 0xcd
mov byte [esp + 0xd1], 0xe9
mov byte [esp + 0xd4], bl
mov byte [esp + 0xd5], 0xf3
mov byte [esp + 0xd6], bl
mov byte [esp + 0xd7], 0xe6
mov byte [esp + 0xd8], dl
mov byte [esp + 0xd9], 0xa0
mov byte [esp + 0xda], 0xd7
mov byte [esp + 0xdb], 0xe9
mov byte [esp + 0xdc], 0xee
mov byte [esp + 0xdd], 0xe4
mov byte [esp + 0xde], bl
mov byte [esp + 0xdf], 0xf7
mov byte [esp + 0xe0], 0xf3
mov byte [esp + 0xe1], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x531311
sub eax, ecx
xor ecx, ecx
cmp eax, esi
jle 0x53132d
add byte [esp + ecx + 0xa4], 0x80
inc ecx
cmp ecx, eax
jl 0x531320
lea eax, [esp + 0xc0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x531337
sub eax, edx
mov ecx, eax
xor eax, eax
cmp ecx, esi
jle 0x53135d
jmp 0x531350
add byte [esp + eax + 0xc0], 0x80
inc eax
cmp eax, ecx
jl 0x531350
lea eax, [esp + 0x118]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x531367
sub eax, edx
mov ecx, eax
xor eax, eax
cmp ecx, esi
jle 0x53138d
jmp 0x531380
add byte [esp + eax + 0x118], 0x80
inc eax
cmp eax, ecx
jl 0x531380
lea eax, [esp + 0x138]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x531397
sub eax, edx
mov ecx, eax
xor eax, eax
cmp ecx, esi
jle 0x5313bd
jmp 0x5313b0
add byte [esp + eax + 0x138], 0x80
inc eax
cmp eax, ecx
jl 0x5313b0
lea eax, [esp + 0xf8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5313c7
sub eax, edx
mov ecx, eax
xor eax, eax
cmp ecx, esi
jle 0x5313ed
jmp 0x5313e0
add byte [esp + eax + 0xf8], 0x80
inc eax
cmp eax, ecx
jl 0x5313e0
lea eax, [esp + 0x98]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5313f7
sub eax, edx
mov ecx, eax
xor eax, eax
cmp ecx, esi
jle 0x53141d
jmp 0x531410
add byte [esp + eax + 0x98], 0x80
inc eax
cmp eax, ecx
jl 0x531410
lea eax, [esp + 0xe4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x531427
sub eax, edx
mov ecx, eax
xor eax, eax
cmp ecx, esi
jle 0x53144d
jmp 0x531440
add byte [esp + eax + 0xe4], 0x80
inc eax
cmp eax, ecx
jl 0x531440
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x531457
sub eax, edx
mov ecx, eax
xor eax, eax
cmp ecx, esi
jle 0x53147d
jmp 0x531470
add byte [esp + eax + 0xb4], 0x80
inc eax
cmp eax, ecx
jl 0x531470
lea eax, [esp + 0xd0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x531487
sub eax, edx
mov ecx, eax
xor eax, eax
cmp ecx, esi
jle 0x5314ad
jmp 0x5314a0
add byte [esp + eax + 0xd0], 0x80
inc eax
cmp eax, ecx
jl 0x5314a0
xor ecx, ecx
push esi
lea edx, [esp + 0xa8]
mov word [esp + 0x7c], cx
push edx
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x84], esi
call fcn.00401970
mov dword [esp + 0x7b4], esi
push esi
lea ecx, [esp + 0x9c]
xor eax, eax
push ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], esi
mov dword [esp + 0x90], esi
mov word [esp + 0x8c], ax
call fcn.00401970
mov byte [esp + 0x7b4], 1
cmp dword [esp + 0x7c0], 1
lea eax, [esp + 0xb4]
je 0x531525
lea eax, [esp + 0xd0]
push esi
xor edx, edx
push eax
lea ecx, [esp + 0x94]
mov dword [esp + 0x94], esi
mov dword [esp + 0x9c], esi
mov word [esp + 0x98], dx
call fcn.00401970
mov byte [esp + 0x7b4], 2
push 0x104
lea edx, [esp + 0x15c]
xor eax, eax
xor ecx, ecx
push edx
mov word [esp + 0x160], ax
mov word [esp + 0x3a8], cx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x531652
lea eax, [esp + 0x158]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x531590
sub eax, edx
sar eax, 1
je 0x531652
cmp word [esp + eax*2 + 0x156], 0x5c
je 0x5315d3
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
add edi, 2
cmp ax, si
jne 0x5315c0
mov eax, dword [0x679980]
mov dword [edi], eax
xor eax, eax
jmp 0x5315e0
movzx ecx, word [esp + eax + 0x158]
mov word [esp + eax + 0x3a0], cx
add eax, 2
cmp cx, si
jne 0x5315e0
mov eax, dword [esp + 0x74]
cmp eax, esi
jne 0x531604
lea eax, [esp + 0x78]
mov edx, eax
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x531606
lea edi, [esp + 0x158]
sub eax, edx
add edi, 0xfffffffe
lea ecx, [ecx]
mov cx, word [edi + 2]
add edi, 2
cmp cx, si
jne 0x531620
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x158]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebp, eax
xor esi, esi
test ebp, ebp
jne 0x53166a
lea edx, [esp + 0xa4]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebp, eax
cmp ebp, esi
je 0x531933
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea eax, [esp + 0x138]
push eax
push ebp
call ebx
lea ecx, [esp + 0xf8]
push ecx
push ebp
mov dword [0x75e71c], eax
call ebx
lea edx, [esp + 0xc0]
push edx
push ebp
mov dword [0x75e720], eax
call ebx
mov dword [0x75e728], eax
lea eax, [esp + 0x118]
push eax
push ebp
call ebx
mov dword [0x75e718], eax
cmp word [esp + 0x3a0], si
je 0x531720
mov eax, dword [esp + 0x80]
cmp eax, esi
jne 0x5316cc
lea eax, [esp + 0x84]
mov edx, eax
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x5316d0
lea edi, [esp + 0x3a0]
sub eax, edx
add edi, 0xfffffffe
jmp 0x5316f0
mov cx, word [edi + 2]
add edi, 2
cmp cx, si
jne 0x5316f0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x3a0]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
jne 0x531730
lea edx, [esp + 0x98]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
cmp dword [0x75e728], 0
je 0x53192c
cmp dword [0x75e718], 0
je 0x53192c
cmp dword [0x75e71c], 0
je 0x53192c
cmp dword [0x75e720], 0
je 0x53192c
test esi, esi
je 0x53192c
lea eax, [esp + 0xe4]
push eax
push esi
call ebx
mov dword [0x75e724], eax
test eax, eax
je 0x531925
mov ecx, dword [esp + 0x2c]
xor ebx, ebx
xor eax, eax
push 0x34
lea edx, [esp + 0x34]
push ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
push edx
mov byte [esp + 0x23], 1
mov dword [esp + 0x24], 0x10
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
call fcn.00621270
mov eax, 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x24]
mov dword [esp + 0x54], eax
mov al, 0xc2
add esp, 0xc
mov ecx, 0xcd44
mov byte [esp + 0x6d], al
mov byte [esp + 0x71], al
lea eax, [esp + 0x30]
mov word [esp + 0x68], cx
push eax
lea ecx, [esp + 0x68]
push ecx
mov edx, 0x11d0
mov edi, 2
push ebx
mov dword [esp + 0x3c], 0x34
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x64], 0x210
mov dword [esp + 0x70], 0xaac56b
mov word [esp + 0x76], dx
mov byte [esp + 0x78], 0x8c
mov byte [esp + 0x7a], bl
mov byte [esp + 0x7b], 0xc0
mov byte [esp + 0x7c], 0x4f
mov byte [esp + 0x7e], 0x95
mov byte [esp + 0x7f], 0xee
call dword [0x75e728]
cmp eax, ebx
jne 0x531925
mov edx, dword [esp + 0x50]
push edx
call dword [0x75e718]
test eax, eax
je 0x53190f
cmp dword [eax + 0x40], ebx
je 0x53190f
push ebx
push ebx
push ebx
push eax
call dword [0x75e71c]
test eax, eax
je 0x53190f
cmp dword [eax + 0xc], ebx
je 0x53190f
push ebx
push eax
call dword [0x75e720]
test eax, eax
je 0x53190f
mov edx, dword [eax + 4]
push 0x100
lea ecx, [esp + 0x5ac]
push ecx
push ebx
push ebx
push 4
push edx
call dword [0x75e724]
test eax, eax
je 0x53190f
mov ecx, dword [esp + 0x8c]
test ecx, ecx
jne 0x5318c7
lea ecx, [esp + 0x90]
lea eax, [esp + 0x5a8]
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x5318f6
test dx, dx
je 0x5318f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x5318f6
add eax, 4
add ecx, 4
test dx, dx
jne 0x5318d0
xor eax, eax
jmp 0x5318fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x531908
cmp dword [esp + 0x7c0], edi
jne 0x53190f
mov eax, dword [esp + 0x28]
mov byte [eax], 1
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x68]
push edx
push 0
mov dword [esp + 0x58], edi
call dword [0x75e728]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push ebp
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov byte [esp + 0x7b4], 1
lea ecx, [esp + 0x8c]
call fcn.00401210
mov byte [esp + 0x7b4], 0
lea ecx, [esp + 0x80]
call fcn.00401210
mov dword [esp + 0x7b4], 0xffffffff
lea ecx, [esp + 0x74]
call fcn.00401210
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x7ac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x794]
xor ecx, esp
call fcn.00620b8d
add esp, 0x7a4
ret 0xc