Function at 0x4444a0
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d6754
mov eax, dword fs:[0]
push eax
sub esp, 0x250
mov eax, dword [0x52cc80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 4], 3
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.004aee10
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x444547
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x248]
call fcn.0043f390
mov byte [ebp - 4], 4
push eax
call fcn.004403d0
push eax
lea ecx, [ebp - 0x254]
call fcn.00442c60
push 0x516bbc
lea eax, [ebp - 0x254]
push eax
call fcn.004b183b
xor eax, eax
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
cmp word [ebp - 0x218], ax
jne 0x444585
xor ecx, ecx
jmp 0x44459f
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x444590
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.00449640
mov byte [ebp - 4], 5
mov eax, dword [ebp + 8]
push 1
cmp dword [eax - 0xc], 0
push ecx
lea ecx, [ebp - 0x230]
je 0x44478c
push 0x5113f8
call fcn.00449410
push eax
push 0
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x230]
call fcn.00449060
mov esi, eax
mov byte [ebp - 4], 6
lea eax, [ebp - 0x230]
cmp eax, esi
je 0x44463b
cmp dword [ebp - 0x21c], 8
jb 0x444612
push dword [ebp - 0x230]
call fcn.004a9925
add esp, 4
xor eax, eax
push esi
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
call fcn.00449370
mov byte [ebp - 4], 5
cmp dword [ebp - 0x234], 8
jb 0x444656
push dword [ebp - 0x248]
call fcn.004a9925
add esp, 4
xor eax, eax
push 0x513594
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
call fcn.004033a0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
lea ecx, [ebp - 0x250]
call fcn.004024a0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x24c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x258]
call fcn.0040e9b0
mov byte [ebp - 4], 9
lea ecx, [ebp + 8]
push ecx
mov edx, eax
lea ecx, [ebp - 0x25c]
call fcn.0040e9b0
add esp, 8
mov byte [ebp - 4], 0xa
lea ecx, [ebx + 0xd4]
push eax
call fcn.004025b0
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x25c]
add edx, 0xfffffff0
or edi, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x44470d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x258]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444730
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x250]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444753
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x24c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444776
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp + 8]
lea esi, [ebx + 0xdc]
push eax
mov ecx, esi
call fcn.004025b0
jmp 0x4449c2
push 0x511080
call fcn.00449410
push eax
push 0
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x230]
call fcn.00449060
mov esi, eax
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x230]
cmp eax, esi
je 0x4447fb
cmp dword [ebp - 0x21c], 8
jb 0x4447d2
push dword [ebp - 0x230]
call fcn.004a9925
add esp, 4
xor eax, eax
push esi
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
call fcn.00449370
mov byte [ebp - 4], 5
cmp dword [ebp - 0x234], 8
jb 0x444816
push dword [ebp - 0x248]
call fcn.004a9925
add esp, 4
xor eax, eax
cmp dword [ebp - 0x21c], 8
mov word [ebp - 0x248], ax
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
call fcn.004024a0
mov esi, eax
mov byte [ebp - 4], 0x10
call fcn.0043ff50
push eax
mov edx, esi
lea ecx, [ebp - 0x250]
call fcn.00417410
add esp, 4
mov byte [ebp - 4], 0x11
lea ecx, [ebx + 0xd4]
push eax
call fcn.004025b0
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x250]
add edx, 0xfffffff0
or edi, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4448a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x258]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4448c8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
push ecx
push 0x5113f8
lea ecx, [ebp - 0x230]
call fcn.00449410
push 0xffffffffffffffff
inc eax
push eax
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x230]
call fcn.00449060
mov esi, eax
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x230]
cmp eax, esi
je 0x444941
cmp dword [ebp - 0x21c], 8
jb 0x444918
push dword [ebp - 0x230]
call fcn.004a9925
add esp, 4
xor eax, eax
push esi
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
call fcn.00449370
mov byte [ebp - 4], 5
cmp dword [ebp - 0x234], 8
jb 0x44495c
push dword [ebp - 0x248]
call fcn.004a9925
add esp, 4
xor eax, eax
cmp dword [ebp - 0x21c], 8
lea edx, [ebp - 0x230]
cmovae edx, dword [ebp - 0x230]
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
lea esi, [ebx + 0xdc]
test edx, edx
jne 0x44499b
xor ecx, ecx
jmp 0x4449b9
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x250], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4449a6
sub ecx, dword [ebp - 0x250]
sar ecx, 1
push ecx
push edx
mov ecx, esi
call fcn.00402690
cmp word [ebp - 0x218], 0
jne 0x4449d0
xor ecx, ecx
jmp 0x4449ef
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4449e0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.00449640
mov eax, dword [ebp + 0x14]
cmp dword [eax - 0xc], 0
je 0x444bc9
push 1
push ecx
push 0x5113f8
lea ecx, [ebp - 0x230]
call fcn.00449410
push eax
push 0
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x230]
call fcn.00449060
mov dword [ebp - 0x250], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x230]
cmp ecx, eax
je 0x444a91
cmp dword [ebp - 0x21c], 8
jb 0x444a68
push dword [ebp - 0x230]
call fcn.004a9925
mov eax, dword [ebp - 0x250]
add esp, 4
xor ecx, ecx
mov word [ebp - 0x230], cx
push eax
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
call fcn.00449370
mov byte [ebp - 4], 5
cmp dword [ebp - 0x234], 8
jb 0x444aac
push dword [ebp - 0x248]
call fcn.004a9925
add esp, 4
xor eax, eax
push 0x513594
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
call fcn.004033a0
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
lea ecx, [ebp - 0x25c]
call fcn.004024a0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x24c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x258]
call fcn.0040e9b0
mov byte [ebp - 4], 0x18
lea ecx, [ebp + 0x14]
push ecx
mov edx, eax
lea ecx, [ebp - 0x250]
call fcn.0040e9b0
add esp, 8
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebx + 0xd8]
call fcn.004025b0
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x250]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444b60
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x258]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444b83
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x25c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444ba6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x24c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444bc9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0xd4]
push eax
push eax
call fcn.004ae22c
add esp, 8
test eax, eax
je 0x444d66
mov eax, dword [ebp + 0xc]
push eax
push eax
call fcn.004ae22c
add esp, 8
test eax, eax
je 0x444cb7
mov eax, dword [ebp + 0x10]
push eax
push eax
call fcn.004ae22c
add esp, 8
test eax, eax
je 0x444c2b
push 0
call fcn.0043fdd0
push eax
lea ecx, [ebp - 0x254]
call fcn.00442b90
push 0x516bbc
lea eax, [ebp - 0x254]
push eax
call fcn.004b183b
push str.dll_found_on_path2
lea ecx, [ebp - 0x24c]
call fcn.004033a0
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x24c]
push eax
mov ecx, ebx
call fcn.004484f0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x24c]
call fcn.00402550
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebx + 0xd4]
call fcn.004025b0
push 0x5c
push dword [ebp + 0x10]
call fcn.004ac1f4
add esp, 8
test eax, eax
jne 0x444c81
or eax, 0xffffffff
jmp 0x444c86
sub eax, dword [ebp + 0x10]
sar eax, 1
inc eax
push eax
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp + 0x10]
call fcn.004213c0
mov byte [ebp - 4], 0x1f
push eax
mov ecx, esi
call fcn.004025b0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x250]
call fcn.00402550
jmp 0x444d66
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebx + 0xd4]
call fcn.004025b0
push 0x5c
push dword [ebp + 0xc]
call fcn.004ac1f4
add esp, 8
test eax, eax
jne 0x444cdc
or eax, 0xffffffff
jmp 0x444ce1
sub eax, dword [ebp + 0xc]
sar eax, 1
inc eax
push eax
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp + 0xc]
call fcn.004213c0
mov byte [ebp - 4], 0x20
push eax
mov ecx, esi
call fcn.004025b0
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x250]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444d21
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.dll_found_on_path1
lea ecx, [ebp - 0x24c]
call fcn.004033a0
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x24c]
push eax
mov ecx, ebx
call fcn.004484f0
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x24c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444d66
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x50f1e8
call fcn.004400c0
push eax
mov ecx, esi
call fcn.0040e610
push 0x50f1e8
call fcn.00441460
push eax
mov ecx, esi
call fcn.0040e610
push 0x50f1e8
call fcn.004413c0
push eax
mov ecx, esi
call fcn.0040e610
push 0x50f1e8
call fcn.00442a40
push eax
mov ecx, esi
call fcn.0040e610
push 0x50f1e8
call fcn.0043ff50
push eax
mov ecx, esi
call fcn.0040e610
call fcn.00441cf0
push eax
lea ecx, [ebp - 0x25c]
call fcn.004024a0
mov byte [ebp - 4], 0x24
push 0x5113f8
mov edx, eax
lea ecx, [ebp - 0x258]
call fcn.00417410
mov byte [ebp - 4], 0x25
push esi
mov edx, eax
lea ecx, [ebp - 0x250]
call fcn.0040e9b0
add esp, 8
mov byte [ebp - 4], 0x26
push eax
mov ecx, esi
call fcn.004025b0
mov byte [ebp - 4], 0x25
mov edx, dword [ebp - 0x250]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444e2b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x258]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444e4e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x25c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444e71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, dword [ebx + 0xd4]
mov esi, esp
sub ecx, 0x10
mov dword [ebp - 0x25c], esp
mov dword [ebp - 0x24c], esi
call fcn.004027c0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x2b
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x258]
call fcn.0043d210
mov byte [ebp - 4], 0x2c
push eax
mov edx, 0x513f9c
lea ecx, [ebp - 0x250]
call fcn.004174f0
add esp, 8
mov byte [ebp - 4], 0x2d
push eax
lea ecx, [ebx + 0xcc]
call fcn.004025b0
mov byte [ebp - 4], 0x2c
mov edx, dword [ebp - 0x250]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444ef1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x258]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444f14
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
cmp dword [ebp - 0x21c], 8
jb 0x444f2f
push dword [ebp - 0x230]
call fcn.004a9925
add esp, 4
xor eax, eax
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
mov byte [ebp - 4], 2
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444f6c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444f8c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp + 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444fac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 0x14]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x444fcd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a992a
mov esp, ebp
pop ebp
ret 0x10