Function at 0x449550
Capabilities:
Check if file exists
Copy file
Create directory
Encode data using xor
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50a513
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x32c
push ebx
push esi
mov bl, cl
mov dword [ebp - 0xc8], edx
push edi
mov byte [ebp - 0xe], bl
mov dword [ebp - 4], 3
mov eax, dword [0x537874]
test al, 1
jne 0x4495d7
or eax, 1
mov dword [0x537874], eax
mov byte [ebp - 4], 4
push 0x2c
mov dword [0x537878], 0
mov dword [0x53787c], 0
call fcn.004df290
push 0x50dfe0
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [0x537878], eax
call fcn.004df4fc
add esp, 8
mov byte [ebp - 4], 3
cmp dword [ebp + 0x34], 0x10
lea esi, [ebp + 0x20]
jb 0x4495e3
mov esi, dword [ebp + 0x20]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x44a8e9
test esi, esi
je 0x449638
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x449601
sub ecx, edx
je 0x449638
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x449632
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x449632
cmp eax, 0x20
je 0x449632
cmp eax, 0x45
je 0x449632
cmp eax, 0x24
jne 0x449638
mov byte [ebp - 0xd], 1
jmp 0x44963c
mov byte [ebp - 0xd], 0
push 0x5374a0
call fcn.004de823
xor eax, eax
add esp, 4
mov dword [ebp - 0x80], eax
mov ecx, 0x537878
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.00476da0
mov esi, dword [ebp - 0xd0]
cmp byte [esi + 0xd], 0
jne 0x4496b8
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x44967d
mov eax, dword [eax]
cmp dword [ebp + 0x34], 0x10
lea ecx, [ebp + 0x20]
jb 0x449689
mov ecx, dword [ebp + 0x20]
push edx
mov edx, dword [ebp + 0x30]
push eax
call fcn.0046fd20
shr eax, 0x1f
add esp, 8
test al, al
jne 0x4496b8
cmp esi, dword [0x537878]
je 0x4496b8
lea eax, [ebp + 0x20]
mov ecx, 0x537878
push eax
call fcn.00467870
mov eax, dword [eax]
mov dword [ebp - 0x80], eax
test bl, bl
je 0x449a60
mov eax, dword [ebp + 0x38]
cmp dword [eax], 0x1400000
jae 0x44a736
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.0046a770
push 0
mov dl, 1
lea ecx, [ebp - 0x8c]
call fcn.00420cf0
add esp, 0x1c
mov byte [ebp - 4], 5
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0x88]
xor ebx, ebx
mov esi, dword [ebp - 0x8c]
sub ecx, esi
imul ecx
mov dword [ebp - 0x18], ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x449a51
xor edi, edi
nop
mov eax, dword [ebp + 0x38]
cmp dword [eax], 0x1400000
jae 0x449a51
sub esp, 0x18
lea eax, [esi + edi]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0046a770
sub esp, 0xc
mov byte [ebp - 4], 6
lea eax, [ebp + 0x3c]
mov ecx, esp
push eax
call fcn.004696e0
mov byte [ebp - 4], 5
call fcn.00449300
add esp, 0x24
test al, al
jne 0x449a23
cmp byte [ebp - 0xd], al
jne 0x449788
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
jb 0x449777
mov eax, dword [ebp + 0x20]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0
push eax
call ebx
mov byte [ebp - 0xd], 1
jmp 0x44978e
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov esi, dword [ebp - 0x8c]
lea ecx, [ebp - 0x1b]
add esi, edi
mov word [ebp - 0x1b], 0x5c
mov byte [ebp - 0x19], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4497a6
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp + 0x30]
sub eax, edx
cmp eax, ecx
jb 0x44a8ef
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
jb 0x4497cd
mov eax, dword [ebp + 0x20]
push ecx
lea ecx, [ebp - 0x1b]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x14]
lea ecx, [ebp - 0x38]
call fcn.004720e0
push esi
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 7
call fcn.0046a4f0
mov edx, eax
xor eax, eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov ecx, dword [edx]
mov dword [ebp - 0x6c], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x68], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x64], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x60], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x5c], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x58], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x24]
cmp ecx, 0x10
jb 0x44986f
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x449865
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
cmp dword [ebp - 0x58], 0x10
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
jb 0x44988d
mov eax, dword [ebp - 0x6c]
push 0
push eax
call ebx
mov ebx, dword [ebp - 0x8c]
lea ecx, [ebp - 0x1e]
add ebx, edi
mov word [ebp - 0x1e], 0x5c
mov byte [ebp - 0x1c], 0
lea edx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4498b0
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp + 0x18]
sub eax, edx
cmp eax, ecx
jb 0x44a8ef
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
jb 0x4498d7
mov eax, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x1e]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x14]
lea ecx, [ebp - 0xc0]
call fcn.004720e0
sub esp, 0xc
mov byte [ebp - 4], 0xa
lea eax, [ebp + 0x48]
mov dword [ebp - 0x14], esp
mov ecx, esp
push eax
call fcn.004696e0
sub esp, 0xc
mov byte [ebp - 4], 0xb
lea eax, [ebp + 0x3c]
mov dword [ebp - 0x54], esp
mov ecx, esp
push eax
call fcn.004696e0
push dword [ebp + 0x38]
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x6c]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xcc], esp
push eax
call fcn.0046a770
sub esp, 0x18
mov byte [ebp - 4], 0xd
mov esi, esp
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x70], esi
push ebx
call fcn.0046a4f0
mov edx, eax
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov ecx, dword [edx]
mov dword [esi], ecx
mov eax, dword [edx + 4]
mov cl, byte [ebp - 0xe]
mov dword [esi + 4], eax
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
mov eax, dword [edx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x14], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
mov edx, dword [ebp - 0xc8]
mov byte [ebp - 4], 0xa
call fcn.00449550
add dword [ebp - 0x80], eax
add esp, 0x4c
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0xac]
cmp ecx, 0x10
jb 0x4499e8
mov edx, dword [ebp - 0xc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4499de
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x449a20
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x449a16
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x88]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x8c]
inc ebx
sub ecx, esi
mov dword [ebp - 0x18], ebx
imul ecx
add edi, 0x18
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x449720
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 3
call fcn.0046c860
mov ebx, dword [ebp + 0x38]
cmp dword [ebx], 0x1400000
jae 0x44a736
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.0046a770
push 0
xor dl, dl
lea ecx, [ebp - 0xd8]
call fcn.00420cf0
add esp, 0x1c
mov byte [ebp - 4], 0xe
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0xd4]
xor esi, esi
mov edi, dword [ebp - 0xd8]
sub ecx, edi
imul ecx
mov dword [ebp - 0xcc], esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x44a727
cmp dword [ebx], 0x1400000
jae 0x44a727
lea esi, [esi + esi*2]
sub esp, 0x18
shl esi, 3
mov ecx, esp
mov dword [ebp - 0x14], esp
lea eax, [edi + esi]
push eax
call fcn.0046a770
sub esp, 0xc
mov byte [ebp - 4], 0xf
lea eax, [ebp + 0x3c]
mov ecx, esp
push eax
call fcn.004696e0
mov byte [ebp - 4], 0xe
call fcn.00449300
add esp, 0x24
test al, al
jne 0x44a6f3
mov edi, dword [ebp - 0xd8]
lea ecx, [ebp - 0x1e]
add edi, esi
mov word [ebp - 0x1e], 0x5c
mov byte [ebp - 0x1c], al
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x449b20
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp + 0x30]
sub eax, edx
cmp eax, ecx
jb 0x44a8ef
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
jb 0x449b47
mov eax, dword [ebp + 0x20]
push ecx
lea ecx, [ebp - 0x1e]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x14]
lea ecx, [ebp - 0x38]
call fcn.004720e0
push edi
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x10
call fcn.0046a4f0
mov edx, eax
xor eax, eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov ecx, dword [edx]
mov dword [ebp - 0x6c], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x68], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x64], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x60], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x5c], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x58], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x24]
cmp ecx, 0x10
jb 0x449be9
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x449bdf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp + 0x4c]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp + 0x48]
imul ecx
mov dword [ebp - 0x28], 0
sar edx, 2
mov eax, edx
mov dword [ebp - 0x24], 0xf
shr eax, 0x1f
mov byte [ebp - 0x38], 0
add eax, edx
je 0x449c88
sub esp, 0x18
lea eax, [ebp - 0x6c]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0046a770
sub esp, 0xc
mov byte [ebp - 4], 0x13
lea eax, [ebp + 0x48]
mov ecx, esp
push eax
call fcn.004696e0
mov byte [ebp - 4], 0x12
call fcn.004493b0
add esp, 0x24
test al, al
jne 0x449c88
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x44a6f3
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x449c79
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
jmp 0x44a6f3
add esi, dword [ebp - 0xd8]
lea ecx, [ebp - 0x1b]
mov word [ebp - 0x1b], 0x5c
lea edx, [ecx + 1]
mov byte [ebp - 0x19], 0
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x449ca0
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp + 0x18]
sub eax, edx
cmp eax, ecx
jb 0x44a8ef
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
jb 0x449cc7
mov eax, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x1b]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x14]
lea ecx, [ebp - 0xc0]
call fcn.004720e0
push esi
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x14
call fcn.0046a4f0
mov edx, eax
xor eax, eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov ecx, dword [edx]
mov dword [ebp - 0xa4], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0xa0], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x9c], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x98], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x94], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x90], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0xac]
cmp ecx, 0x10
jb 0x449d99
mov edx, dword [ebp - 0xc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x449d8f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
sub esp, 0x18
mov dword [ebp - 0xb0], 0
lea eax, [ebp - 0xa4]
mov dword [ebp - 0xac], 0xf
mov ecx, esp
mov byte [ebp - 0xc0], 0
push eax
call fcn.0046a770
call fcn.0040a3a0
mov ebx, eax
add esp, 0x18
mov dword [ebp - 0x14], ebx
test ebx, ebx
je 0x44a65f
cmp ebx, dword [ebp - 0xc8]
ja 0x44a65f
cmp byte [ebp - 0xd], 0
jne 0x449e05
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
jb 0x449df8
mov eax, dword [ebp + 0x20]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov byte [ebp - 0xd], 1
mov dword [ebp - 0x76], 0x9c9899da
xor ecx, ecx
mov word [ebp - 0x72], 0x100
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x76], al
inc ecx
cmp ecx, 4
jb 0x449e14
lea edx, [ebp - 0x76]
mov byte [ebp - 0x71], 0
lea ecx, [edx + 1]
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x449e30
mov edi, dword [ebp - 0x90]
sub edx, ecx
mov esi, dword [ebp - 0xa4]
lea ecx, [ebp - 0xa4]
cmp edi, 0x10
jb 0x449e52
mov ecx, esi
push edx
mov edx, dword [ebp - 0x94]
lea eax, [ebp - 0x76]
push eax
push ecx
call fcn.0046fe20
add esp, 0xc
cmp eax, 0xffffffff
je 0x44a630
xor eax, eax
mov ebx, 0xf
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x38], al
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 1
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x50], 0x2f
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0xa4]
cmp edi, 0x10
jb 0x449ebb
mov ecx, esi
mov edx, dword [ebp - 0x94]
push 1
push eax
push 0
call fcn.0046feb0
add esp, 0xc
cmp eax, 0xffffffff
je 0x449ef6
push 0
lea ecx, [ebp - 0x38]
push ecx
push 1
push eax
lea ecx, [ebp - 0xa4]
call fcn.0046cde0
mov edi, dword [ebp - 0x90]
mov esi, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0x24]
mov byte [ebp - 4], 0x16
cmp ebx, 0x10
jb 0x449f39
mov edx, dword [ebp - 0x38]
lea ecx, [ebx + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x449f23
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
mov edi, dword [ebp - 0x90]
add esp, 8
mov esi, dword [ebp - 0xa4]
lea eax, [ebp - 0xa4]
cmp edi, 0x10
jb 0x449f46
mov eax, esi
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0
push 0xffffffffffffffff
push eax
push 0
push 0x4e3
call ebx
mov esi, eax
xor eax, eax
test esi, esi
jle 0x449ff7
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], 7
mov word [ebp - 0x50], ax
push eax
push esi
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x19
call fcn.0046cc00
cmp dword [ebp - 0x3c], 8
lea ecx, [ebp - 0x50]
jb 0x449f9c
mov ecx, dword [ebp - 0x50]
cmp dword [ebp - 0x90], 0x10
lea eax, [ebp - 0xa4]
jb 0x449fb1
mov eax, dword [ebp - 0xa4]
push esi
push ecx
push 0xffffffffffffffff
push eax
push 0
push 0x4e3
call ebx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xe0], eax
jmp 0x44a028
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], eax
xor eax, eax
mov dword [ebp - 0xe0], 7
mov word [ebp - 0xf4], ax
push 0x104
lea eax, [ebp - 0x1f8]
mov byte [ebp - 4], 0x1a
push 0
push eax
call fcn.004e14f0
add esp, 0xc
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
je 0x44a05e
cmp eax, 1
je 0x44a05e
cmp eax, 0x80010106
jne 0x44a105
lea eax, [ebp - 0xc4]
push eax
push 0x50f520
push 1
push 0
push 0x50f550
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x44a0ff
mov ecx, dword [ebp - 0xc4]
lea edx, [ebp - 0xdc]
push edx
push 0x50f530
push ecx
mov eax, dword [ecx]
call dword [eax]
test eax, eax
js 0x44a0f3
cmp dword [ebp - 0xe0], 8
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
lea eax, [ebp - 0xf4]
jb 0x44a0bc
mov eax, dword [ebp - 0xf4]
push 0
push eax
push ecx
call edx
test eax, eax
js 0x44a0e7
mov ecx, dword [ebp - 0xc4]
lea edx, [ebp - 0x338]
push 2
push edx
push 0x104
mov eax, dword [ecx]
lea edx, [ebp - 0x1f8]
push edx
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0xdc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0xc4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
lea ecx, [ebp - 0x1f8]
mov dword [ebp - 0xc0], eax
lea edx, [ecx + 1]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a134
sub ecx, edx
lea eax, [ebp - 0x1f8]
push ecx
push eax
lea ecx, [ebp - 0xc0]
call fcn.00402ae0
lea ecx, [ebp - 0xf4]
call fcn.0046ca90
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
je 0x44a5d3
cmp dword [ebp - 0xac], 0x10
lea eax, [ebp - 0xc0]
jb 0x44a182
mov eax, dword [ebp - 0xc0]
push ecx
push eax
lea ecx, [ebp - 0xa4]
call fcn.0046a350
cmp dword [ebp - 0xac], 0x10
lea eax, [ebp - 0xc0]
jb 0x44a1a4
mov eax, dword [ebp - 0xc0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
mov esi, eax
test esi, esi
je 0x44a5b6
mov edx, esi
lea ecx, [edx + 1]
lea ebx, [ebx]
mov al, byte [edx]
inc edx
test al, al
jne 0x44a1c0
sub edx, ecx
cmp dword [ebp - 0x58], 0x10
lea ecx, [ebp - 0x6c]
jb 0x44a1d5
mov ecx, dword [ebp - 0x6c]
push edx
mov edx, dword [ebp - 0x5c]
push esi
push 0
call fcn.0046feb0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44a39d
xor eax, eax
mov dword [ebp - 0x24], 0xf
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x38], al
mov byte [ebp - 4], 0x1c
xor ecx, ecx
mov dword [ebp - 0x7c], 0x9c9899da
mov word [ebp - 0x78], 0x100
jmp 0x44a220
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x7c], al
inc ecx
cmp ecx, 4
jb 0x44a220
xor eax, eax
mov byte [ebp - 0x77], 0
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a250
sub ecx, edx
lea eax, [ebp - 0x7c]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402ae0
mov byte [ebp - 4], 0x1d
lea esi, [ebp - 0x50]
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0xa8], esi
setae byte [ebp - 0xe]
mov dword [ebp - 0x18], edi
jb 0x44a28d
mov esi, edi
mov dword [ebp - 0xa8], edi
cmp dword [ebp - 0x58], 0x10
lea edx, [ebp - 0x6c]
mov dword [ebp - 0x70], edx
jb 0x44a29f
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], edx
mov ebx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x5c]
cmp ebx, eax
ja 0x44a390
sub eax, ebx
test ebx, ebx
jne 0x44a2ba
xor edi, edi
jmp 0x44a37a
movsx ecx, byte [esi]
inc eax
add eax, edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x54], eax
sub eax, edx
push eax
push ecx
push edx
call fcn.004e2ce0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44a38a
lea ecx, [ecx]
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44a301
jmp 0x44a2f0
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44a306
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44a2f0
cmp esi, 0xfffffffc
je 0x44a33a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44a333
cmp esi, 0xfffffffd
je 0x44a33a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44a333
cmp esi, 0xfffffffe
je 0x44a33a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44a333
cmp esi, 0xffffffff
je 0x44a33a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44a33a
sbb eax, eax
or eax, 1
jmp 0x44a33c
xor eax, eax
test eax, eax
je 0x44a372
mov eax, dword [ebp - 0x54]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x14]
push edi
call fcn.004e2ce0
mov esi, dword [ebp - 0xa8]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44a2e0
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x18]
cmp byte [ebp - 0xe], 0
mov byte [ebp - 4], 0x1c
jmp 0x44a553
sub edi, dword [ebp - 0x70]
cmp edi, 0xffffffff
je 0x44a38a
push 0
lea eax, [ebp - 0x38]
push eax
push ebx
push edi
lea ecx, [ebp - 0x6c]
call fcn.0046cde0
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x18]
cmp byte [ebp - 0xe], 0
mov byte [ebp - 4], 0x1c
jmp 0x44a553
xor eax, eax
mov ecx, esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a3b6
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x38]
call fcn.00402ae0
mov byte [ebp - 4], 0x1e
xor ecx, ecx
mov dword [ebp - 0x86], 0x9c9899da
mov word [ebp - 0x82], 0x100
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x86], al
inc ecx
cmp ecx, 4
jb 0x44a3e2
xor eax, eax
mov byte [ebp - 0x81], 0
lea ecx, [ebp - 0x86]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a417
sub ecx, edx
lea eax, [ebp - 0x86]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402ae0
mov byte [ebp - 4], 0x1f
lea esi, [ebp - 0x50]
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0x70], esi
setae byte [ebp - 0xe]
mov dword [ebp - 0x18], edi
jb 0x44a451
mov esi, edi
mov dword [ebp - 0x70], edi
cmp dword [ebp - 0x58], 0x10
lea edx, [ebp - 0x6c]
mov dword [ebp - 0xa8], edx
jb 0x44a469
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0xa8], edx
mov ebx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x5c]
cmp ebx, eax
ja 0x44a54b
sub eax, ebx
test ebx, ebx
jne 0x44a484
xor edi, edi
jmp 0x44a52b
movsx ecx, byte [esi]
inc eax
add eax, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x14], eax
sub eax, edx
push eax
push ecx
push edx
call fcn.004e2ce0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44a545
mov ecx, esi
mov edx, edi
mov esi, ebx
sub esi, 4
jb 0x44a4c3
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x44a4c8
add edx, 4
add ecx, 4
sub esi, 4
jae 0x44a4b2
cmp esi, 0xfffffffc
je 0x44a4fc
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x44a4f5
cmp esi, 0xfffffffd
je 0x44a4fc
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x44a4f5
cmp esi, 0xfffffffe
je 0x44a4fc
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x44a4f5
cmp esi, 0xffffffff
je 0x44a4fc
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x44a4fc
sbb eax, eax
or eax, 1
jmp 0x44a4fe
xor eax, eax
test eax, eax
je 0x44a520
mov eax, dword [ebp - 0x14]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x54]
push edi
call fcn.004e2ce0
mov esi, dword [ebp - 0x70]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44a4a7
jmp 0x44a545
sub edi, dword [ebp - 0xa8]
cmp edi, 0xffffffff
je 0x44a545
cmp dword [ebp - 0x24], 0x10
lea eax, [ebp - 0x38]
jb 0x44a537
mov eax, dword [ebp - 0x38]
push dword [ebp - 0x28]
lea ecx, [ebp - 0x6c]
push eax
push ebx
push edi
call fcn.0046cde0
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x18]
cmp byte [ebp - 0xe], 0
mov byte [ebp - 4], 0x1e
je 0x44a57e
inc ecx
mov eax, edi
cmp ecx, 0x1000
jb 0x44a574
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edi
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x24]
cmp ecx, 0x10
jb 0x44a5b6
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a5ac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0xa4]
mov ecx, esp
push eax
call fcn.0046a770
call fcn.0040a3a0
add esp, 0x18
mov esi, eax
jmp 0x44a5d6
mov esi, dword [ebp - 0x14]
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0xac]
cmp ecx, 0x10
jb 0x44a614
mov edx, dword [ebp - 0xc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a60a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
mov eax, esi
test esi, esi
je 0x44a65f
mov ebx, eax
cmp eax, dword [ebp - 0xc8]
ja 0x44a65f
mov edi, dword [ebp - 0x90]
mov esi, dword [ebp - 0xa4]
cmp dword [ebp - 0x58], 0x10
lea ecx, [ebp - 0x6c]
jb 0x44a63c
mov ecx, dword [ebp - 0x6c]
lea eax, [ebp - 0xa4]
cmp edi, 0x10
jb 0x44a649
mov eax, esi
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x44a65f
mov eax, dword [ebp + 0x38]
inc dword [ebp - 0x80]
add dword [eax], ebx
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x90]
cmp ecx, 0x10
jb 0x44a69d
mov edx, dword [ebp - 0xa4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a693
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0xf
mov byte [ebp - 0xa4], 0
cmp ecx, 0x10
jb 0x44a6f0
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a6e6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
mov ebx, dword [ebp + 0x38]
mov ecx, dword [ebp - 0xd4]
mov eax, 0x2aaaaaab
mov edi, dword [ebp - 0xd8]
sub ecx, edi
mov esi, dword [ebp - 0xcc]
imul ecx
inc esi
sar edx, 2
mov eax, edx
mov dword [ebp - 0xcc], esi
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x449ac0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 3
call fcn.0046c860
mov ebx, dword [ebp - 0x80]
test ebx, ebx
jg 0x44a7cb
cmp byte [ebp - 0xd], 0
je 0x44a7cb
cmp dword [ebp + 0x34], 0x10
lea edx, [ebp + 0x20]
jb 0x44a757
mov edx, dword [ebp + 0x20]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
lea esi, [ecx + 1]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a770
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x38]
call fcn.00402ae0
push ecx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x20
call fcn.0040a750
mov byte [ebp - 4], 3
add esp, 4
mov ecx, dword [ebp - 0x24]
cmp ecx, 0x10
jb 0x44a7cb
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a7c1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f4
push ecx
push edx
call fcn.004df511
add esp, 8
lea eax, [ebp + 0x20]
mov ecx, 0x537878
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.00476da0
mov esi, dword [ebp - 0xd0]
cmp byte [esi + 0xd], 0
jne 0x44a817
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
mov edx, dword [eax + 0x10]
jb 0x44a7fa
mov eax, dword [eax]
cmp dword [ebp + 0x34], 0x10
lea ecx, [ebp + 0x20]
jb 0x44a806
mov ecx, dword [ebp + 0x20]
push edx
mov edx, dword [ebp + 0x30]
push eax
call fcn.0046fd20
add esp, 8
test eax, eax
jns 0x44a81d
mov esi, dword [0x537878]
lea eax, [ebp + 0x20]
mov ecx, 0x537878
push eax
cmp esi, dword [0x537878]
jne 0x44a837
call fcn.00467870
mov dword [eax], ebx
jmp 0x44a83e
call fcn.00467870
add dword [eax], ebx
mov ecx, dword [ebp + 0x1c]
cmp ecx, 0x10
jb 0x44a872
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a868
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f9
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp ecx, 0x10
jb 0x44a8b4
mov edx, dword [ebp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a8aa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44a8f9
push ecx
push edx
call fcn.004df511
add esp, 8
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x30], 0
mov dword [ebp + 0x34], 0xf
mov byte [ebp + 0x20], 0
call fcn.0046c860
lea ecx, [ebp + 0x48]
call fcn.0046c860
mov ecx, dword [ebp - 0xc]
mov eax, ebx
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.004de4bb
call fcn.00402270
call fcn.004e47b0
call fcn.004e47b0
int3