Function at 0x4464f0
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d9404
mov eax, dword fs:[0]
push eax
sub esp, 0x250
mov eax, dword [0x539c80]
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.004b1a50
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x446597
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x248]
call fcn.004409f0
mov byte [ebp - 4], 4
push eax
call fcn.00441fb0
push eax
lea ecx, [ebp - 0x254]
call fcn.00444d10
push 0x52472c
lea eax, [ebp - 0x254]
push eax
call fcn.004b447b
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 0x4465d5
xor ecx, ecx
jmp 0x4465ef
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4465e0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.0044b920
mov byte [ebp - 4], 5
mov eax, dword [ebp + 8]
push 1
cmp dword [eax - 0xc], 0
push ecx
lea ecx, [ebp - 0x230]
je 0x4467dc
push 0x52006c
call fcn.0044b6f0
push eax
push 0
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x230]
call fcn.0044b340
mov esi, eax
mov byte [ebp - 4], 6
lea eax, [ebp - 0x230]
cmp eax, esi
je 0x44668b
cmp dword [ebp - 0x21c], 8
jb 0x446662
push dword [ebp - 0x230]
call fcn.004ac575
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.0044b650
mov byte [ebp - 4], 5
cmp dword [ebp - 0x234], 8
jb 0x4466a6
push dword [ebp - 0x248]
call fcn.004ac575
add esp, 4
xor eax, eax
push 0x5201cc
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
call fcn.004033d0
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.00402400
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x24c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x258]
call fcn.0040f0c0
mov byte [ebp - 4], 9
lea ecx, [ebp + 8]
push ecx
mov edx, eax
lea ecx, [ebp - 0x25c]
call fcn.0040f0c0
add esp, 8
mov byte [ebp - 4], 0xa
lea ecx, [ebx + 0xd4]
push eax
call fcn.00402510
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 0x44675d
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 0x446780
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 0x4467a3
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 0x4467c6
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.00402510
jmp 0x446a10
push 0x5203b8
call fcn.0044b6f0
push eax
push 0
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x230]
call fcn.0044b340
mov esi, eax
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x230]
cmp eax, esi
je 0x44684b
cmp dword [ebp - 0x21c], 8
jb 0x446822
push dword [ebp - 0x230]
call fcn.004ac575
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.0044b650
mov byte [ebp - 4], 5
cmp dword [ebp - 0x234], 8
jb 0x446866
push dword [ebp - 0x248]
call fcn.004ac575
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.00402400
mov edx, eax
mov byte [ebp - 4], 0x10
call fcn.00441a00
push eax
lea ecx, [ebp - 0x250]
call fcn.00417c70
add esp, 4
mov byte [ebp - 4], 0x11
lea ecx, [ebx + 0xd4]
push eax
call fcn.00402510
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 0x4468f3
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 0x446916
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
push ecx
push 0x5203bc
lea ecx, [ebp - 0x230]
call fcn.0044b6f0
push 0xffffffffffffffff
inc eax
push eax
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x230]
call fcn.0044b340
mov esi, eax
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x230]
cmp eax, esi
je 0x44698f
cmp dword [ebp - 0x21c], 8
jb 0x446966
push dword [ebp - 0x230]
call fcn.004ac575
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.0044b650
mov byte [ebp - 4], 5
cmp dword [ebp - 0x234], 8
jb 0x4469aa
push dword [ebp - 0x248]
call fcn.004ac575
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 0x4469e9
xor ecx, ecx
jmp 0x446a07
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x250], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4469f4
sub ecx, dword [ebp - 0x250]
sar ecx, 1
push ecx
push edx
mov ecx, esi
call fcn.004025f0
cmp word [ebp - 0x218], 0
jne 0x446a1e
xor ecx, ecx
jmp 0x446a36
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x446a27
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.0044b920
mov eax, dword [ebp + 0x14]
cmp dword [eax - 0xc], 0
je 0x446c10
push 1
push ecx
push str.._
lea ecx, [ebp - 0x230]
call fcn.0044b6f0
push eax
push 0
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x230]
call fcn.0044b340
mov dword [ebp - 0x250], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x230]
cmp ecx, eax
je 0x446ad8
cmp dword [ebp - 0x21c], 8
jb 0x446aaf
push dword [ebp - 0x230]
call fcn.004ac575
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.0044b650
mov byte [ebp - 4], 5
cmp dword [ebp - 0x234], 8
jb 0x446af3
push dword [ebp - 0x248]
call fcn.004ac575
add esp, 4
xor eax, eax
push 0x5203b4
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
call fcn.004033d0
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.00402400
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x24c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x258]
call fcn.0040f0c0
mov byte [ebp - 4], 0x18
lea ecx, [ebp + 0x14]
push ecx
mov edx, eax
lea ecx, [ebp - 0x250]
call fcn.0040f0c0
add esp, 8
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebx + 0xd8]
call fcn.00402510
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 0x446ba7
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 0x446bca
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 0x446bed
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 0x446c10
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.004b0e6c
add esp, 8
test eax, eax
je 0x446dad
mov eax, dword [ebp + 0xc]
push eax
push eax
call fcn.004b0e6c
add esp, 8
test eax, eax
je 0x446cfe
mov eax, dword [ebp + 0x10]
push eax
push eax
call fcn.004b0e6c
add esp, 8
test eax, eax
je 0x446c72
push 0
call fcn.00441870
push eax
lea ecx, [ebp - 0x254]
call fcn.00444c40
push 0x52472c
lea eax, [ebp - 0x254]
push eax
call fcn.004b447b
push str.dll_found_on_path2
lea ecx, [ebp - 0x24c]
call fcn.004033d0
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x24c]
push eax
mov ecx, ebx
call fcn.0044a730
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x24c]
call fcn.004024b0
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebx + 0xd4]
call fcn.00402510
push 0x5c
push dword [ebp + 0x10]
call fcn.004aede4
add esp, 8
test eax, eax
jne 0x446cc8
or eax, 0xffffffff
jmp 0x446ccd
sub eax, dword [ebp + 0x10]
sar eax, 1
inc eax
push eax
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp + 0x10]
call fcn.004227c0
mov byte [ebp - 4], 0x1f
push eax
mov ecx, esi
call fcn.00402510
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x250]
call fcn.004024b0
jmp 0x446dad
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebx + 0xd4]
call fcn.00402510
push 0x5c
push dword [ebp + 0xc]
call fcn.004aede4
add esp, 8
test eax, eax
jne 0x446d23
or eax, 0xffffffff
jmp 0x446d28
sub eax, dword [ebp + 0xc]
sar eax, 1
inc eax
push eax
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp + 0xc]
call fcn.004227c0
mov byte [ebp - 4], 0x20
push eax
mov ecx, esi
call fcn.00402510
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 0x446d68
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.004033d0
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x24c]
push eax
mov ecx, ebx
call fcn.0044a730
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 0x446dad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x5203c0
call fcn.00441b30
push eax
mov ecx, esi
call fcn.0040ed20
push 0x5203c4
call fcn.00443170
push eax
mov ecx, esi
call fcn.0040ed20
push 0x5203f8
call fcn.004430d0
push eax
mov ecx, esi
call fcn.0040ed20
push 0x5203fc
call fcn.00444960
push eax
mov ecx, esi
call fcn.0040ed20
push 0x5203f0
call fcn.00441a00
push eax
mov ecx, esi
call fcn.0040ed20
call fcn.00443b00
push eax
lea ecx, [ebp - 0x25c]
call fcn.00402400
mov byte [ebp - 4], 0x24
push 0x5203f4
mov edx, eax
lea ecx, [ebp - 0x258]
call fcn.00417c70
mov byte [ebp - 4], 0x25
push esi
mov edx, eax
lea ecx, [ebp - 0x250]
call fcn.0040f0c0
add esp, 8
mov byte [ebp - 4], 0x26
push eax
mov ecx, esi
call fcn.00402510
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 0x446e72
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 0x446e95
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 0x446eb8
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.00402720
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x2b
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x258]
call fcn.0043e930
mov byte [ebp - 4], 0x2c
push eax
mov edx, 0x52041c
lea ecx, [ebp - 0x250]
call fcn.00417d50
add esp, 8
mov byte [ebp - 4], 0x2d
push eax
lea ecx, [ebx + 0xcc]
call fcn.00402510
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 0x446f38
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 0x446f5b
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 0x446f76
push dword [ebp - 0x230]
call fcn.004ac575
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 0x446fb3
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 0x446fd3
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 0x446ff3
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 0x447014
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.004ac57a
mov esp, ebp
pop ebp
ret 0x10