Function at 0x3002c6ad
Capabilities:
Delete file
Get common file path
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x300a1156
mov eax, dword fs:[0]
push eax
mov eax, 0x2050
call fcn.30086893
mov eax, dword [0x30008648]
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 eax, dword [ebp + 8]
or dword [ebp - 0x1b64], 0xffffffff
or dword [ebp - 0x1b6c], 0xffffffff
mov dword [ebp - 0x1b34], ecx
xor edi, edi
lea ecx, [ebp - 0x1f04]
mov dword [ebp - 0x1b44], eax
xor ebx, ebx
mov dword [ebp - 0x1b70], edi
call fcn.30082bed
lea ecx, [ebp - 0x205c]
mov dword [ebp - 4], edi
call fcn.30082bed
lea ecx, [ebp - 0x1ca0]
mov byte [ebp - 4], 1
mov dword [ebp - 0x1b54], edi
mov dword [ebp - 0x1b40], edi
mov dword [ebp - 0x1b60], edi
mov dword [ebp - 0x1b58], edi
mov dword [ebp - 0x1b7c], edi
mov dword [ebp - 0x1b78], edi
mov dword [ebp - 0x1b80], edi
mov dword [ebp - 0x1b50], edi
mov dword [ebp - 0x1b2c], edi
call fcn.3002bbf5
mov dword [ebp - fcn.30089b33], 0x30002fe4
lea ecx, [ebp - 0x1d90]
mov byte [ebp - 4], 2
call fcn.3001c07d
lea ecx, [ebp - 0x1d20]
mov byte [ebp - 4], 3
call fcn.3008b8c0
mov esi, 0x30002f64
mov dword [ebp - 0x1d20], esi
lea ecx, [ebp - 0x1ce0]
mov byte [ebp - 4], 4
call fcn.3008b8c0
mov dword [ebp - 0x1ce0], esi
lea ecx, [ebp - 0xf1c]
mov byte [ebp - 4], 5
call fcn.300870d8
mov dword [ebp - 0xf1c], 0x30002f7c
lea ecx, [ebp - 0xfa8]
mov byte [ebp - 4], 6
call fcn.300870d8
mov dword [ebp - 0xfa8], 0x30002f88
lea ecx, [ebp - 0xe90]
mov byte [ebp - 4], 7
call fcn.300870d8
mov dword [ebp - 0xe90], 0x30002f94
lea ecx, [ebp - 0x1034]
mov byte [ebp - 4], 8
call fcn.300870d8
mov dword [ebp - 0x1034], 0x30002fa0
mov esi, dword [ebp - 0x1b34]
push esi
lea ecx, [ebp - 0x10d4]
mov byte [ebp - 4], 9
call fcn.3003199f
lea ecx, [ebp - 0x1c34]
mov byte [ebp - 4], 0xa
call fcn.3002bade
mov ecx, esi
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x1bf8], edi
mov dword [ebp - 0x1bfc], edi
call fcn.3005d8e5
mov dword [esi + 0x2158], 2
lea eax, [ebp - 0xa38]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x3002c88a
lea eax, [ebp - 0x830]
push eax
push edi
push 0x3000300c
lea eax, [ebp - 0xa38]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x3002c894
mov ebx, 0x80004005
jmp 0x3002cbae
mov esi, dword [sym.imp.MSO.dll_Ordinal_403]
push edi
push edi
push 0x10000100
push 2
push edi
push 1
push 0xc0000000
lea eax, [ebp - 0x830]
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebp - 0x1b64], eax
jne 0x3002c8d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.300440d4
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
mov eax, dword [ebp - 0x1b34]
cmp byte [eax + 0x1c], 0
je 0x3002c93f
lea eax, [ebp - 0xc40]
push eax
push edi
push 0x30003004
lea eax, [ebp - 0xa38]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x3002c904
mov ebx, 0x80004005
cmp ebx, edi
jl 0x3002cbae
push edi
push edi
push 0x10000100
push 2
push edi
push 1
push 0xc0000000
lea eax, [ebp - 0xc40]
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebp - 0x1b6c], eax
jne 0x3002c93f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.300440d4
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
push 1
call fcn.3005b657
push 1
push edi
mov esi, eax
push esi
push dword [ebp - 0x1b64]
lea ecx, [ebp - 0x1f04]
call fcn.30083655
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
mov eax, dword [ebp - 0x1b34]
cmp byte [eax + 0x1c], 0
je 0x3002c99a
push 1
push edi
push esi
push dword [ebp - 0x1b6c]
lea ecx, [ebp - 0x205c]
call fcn.30083655
mov ebx, eax
lea eax, [ebp - 0x205c]
jmp 0x3002c9a0
lea eax, [ebp - 0x1f04]
cmp ebx, edi
mov dword [ebp - 0x1b54], eax
jl 0x3002cbae
lea ecx, [ebp - 0x1f04]
call fcn.30083309
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
lea eax, [ebp - 0x1b40]
push eax
push edi
lea ecx, [ebp - 0x1f04]
call fcn.30084f18
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
mov ecx, dword [ebp - 0x1b34]
lea eax, [ebp - 0x1c04]
push eax
push 1
push dword [ebp - 0x1b40]
add ecx, 0x1b50
call fcn.3008b6d2
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
mov esi, dword [ebp - 0x1b40]
call fcn.3002bbc6
push 2
push 1
push dword [ebp - 0x1b40]
lea ecx, [ebp - 0x1ca0]
call fcn.3002c2ee
mov ebx, eax
mov eax, dword [ebp - 0x1b40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp ebx, edi
jl 0x3002cbae
mov edx, dword [ebp - 0x1c98]
mov ecx, dword [ebp - 0x1b34]
mov eax, edx
imul eax, eax, 7
cmp byte [ecx + 0x1c], 0
je 0x3002ca59
add eax, edx
mov ecx, dword [ecx + 0x1bc0]
lea eax, [eax + ecx*2]
push edx
push eax
push dword [ebp - 0x1b44]
mov dword [ebp - 0x1b50], eax
mov dword [ebp - 0x1b2c], edx
call fcn.3002bd50
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b40]
push eax
push 1
call fcn.30084f18
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
mov ecx, dword [ebp - 0x1b34]
lea eax, [ebp - 0x1c04]
push eax
push edi
push dword [ebp - 0x1b40]
add ecx, 0x1bb8
call fcn.3008b6d2
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
mov esi, dword [ebp - 0x1b40]
call fcn.3002bbc6
push 2
push 1
push dword [ebp - 0x1b40]
lea ecx, [ebp - 0x1d90]
call fcn.3002c34a
mov ebx, eax
mov eax, dword [ebp - 0x1b40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp ebx, edi
jl 0x3002cbae
mov ebx, dword [ebp - 0x1d88]
mov esi, dword [ebp - 0x1b34]
jmp 0x3002cb5d
push esi
push ebx
lea eax, [ebp - 0x1d90]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001b8f9
or dword [ebp - 0x1bdc], 1
and dword [ebp - 0x1b9c], 0xfffffffd
push edi
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x1bb8], edi
mov dword [ebp - 0x1bbc], edi
call fcn.3008a230
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0xb
call fcn.3001babc
inc ebx
cmp ebx, dword [esi + 0x1bc0]
jbe 0x3002cb10
lea eax, [ebp - 0x1b60]
push eax
push 2
lea ecx, [ebp - 0x1f04]
call fcn.30084f18
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
push dword [ebp - 0x1b60]
lea ecx, [ebp - 0x1d20]
call fcn.3008bfb5
mov ebx, eax
cmp ebx, edi
jl 0x3002cbae
lea eax, [ebp - 0x1d20]
push eax
lea eax, [ebp - 0x1bfc]
push eax
mov ecx, esi
call fcn.3005ba5c
mov ebx, eax
cmp ebx, edi
mov dword [ebp - 0x1b30], 1
jl 0x3002cec4
mov esi, dword [ebp - 0x1b34]
mov eax, dword [ebp - 0x1b30]
cmp eax, dword [ebp - 0x1c98]
ja 0x3002ce7d
push esi
push eax
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30043127
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xd
call fcn.3008a0d0
mov ebx, eax
cmp ebx, edi
jl 0x3002cdd6
mov eax, dword [ebp - 0xcf8]
or eax, dword [ebp - 0xcfc]
je 0x3002cdb6
lea eax, [ebp - 0x1b38]
push eax
push dword [ebp - 0xcf8]
lea ecx, [esi + 0x1c28]
push dword [ebp - 0xcfc]
call fcn.3008c23f
mov ebx, eax
cmp ebx, edi
jl 0x3002cdd6
cmp dword [ebp - 0x1b38], 0xf4240
jbe 0x3002cc50
mov ebx, 0x8004022d
cmp ebx, edi
jl 0x3002cdd6
mov eax, dword [esi + 0x1f00]
mov ecx, dword [eax]
push edi
push dword [ebp - 0x1b38]
push eax
call dword [ecx + 0x18]
mov ebx, eax
cmp ebx, edi
jl 0x3002cdd6
mov eax, dword [esi + 0x1ef4]
mov ecx, dword [eax]
push edi
push edi
push dword [ebp - 0xcf8]
push dword [ebp - 0xcfc]
push eax
call dword [ecx + 0x14]
mov ebx, eax
cmp ebx, edi
jl 0x3002cdd6
push dword [esi + 0x1efc]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
lea edx, [ebp - 0x1b74]
push edx
push dword [ebp - 0x1b38]
mov dword [ebp - 0x1b68], eax
mov eax, dword [esi + 0x1ef4]
push dword [ebp - 0x1b68]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov ebx, eax
cmp ebx, edi
mov eax, dword [ebp - 0x1b38]
jl 0x3002cce3
cmp dword [ebp - 0x1b74], eax
je 0x3002cce3
mov ebx, 0x8003001e
mov ecx, dword [ebp - 0x1b68]
push edi
add eax, ecx
push eax
push ecx
call fcn.3001baa1
push dword [esi + 0x1efc]
mov dword [ebp - 0x1b3c], eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp ebx, edi
jl 0x3002cdd6
mov eax, dword [ebp - 0x1b3c]
cmp eax, dword [ebp - 0xc74]
jne 0x3002cdb1
push edi
lea eax, [ebp - 0x1b88]
push eax
lea eax, [ebp - 0x1b4c]
push eax
push dword [ebp - 0x1b38]
lea ecx, [ebp - 0x1d20]
call fcn.3008c4ab
mov ebx, eax
cmp ebx, edi
jge 0x3002cd5b
mov eax, dword [0x30005bc8]
mov dword [ebp - 0x1b4c], eax
mov eax, dword [0x30005bcc]
mov dword [ebp - 0x1b48], eax
cmp ebx, edi
mov eax, dword [ebp - 0x1b4c]
mov dword [ebp - 0xcfc], eax
mov eax, dword [ebp - 0x1b48]
mov dword [ebp - 0xcf8], eax
jl 0x3002cdd6
push dword [esi + 0x1efc]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
push dword [ebp - 0x1b38]
lea ecx, [ebp - 0x1d20]
push dword [ebp - 0x1b48]
push dword [ebp - 0x1b4c]
call fcn.3008c0fa
push dword [esi + 0x1efc]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x3002cdb6
mov ebx, 0x8004022d
cmp ebx, edi
jl 0x3002cdd6
or dword [ebp - 0xdec], 1
and dword [ebp - 0xc68], 0xfffffff7
push edi
lea ecx, [ebp - 0xe04]
call fcn.3003f427
jmp 0x3002ce2c
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002ce01
je 0x3002ce1b
cmp ebx, 0x80030004
jl 0x3002ce19
cmp ebx, 0x80030006
jle 0x3002ce1b
cmp ebx, 0x80030008
je 0x3002ce1b
cmp ebx, 0x80030013
jmp 0x3002ce17
cmp ebx, 0x80030070
je 0x3002ce1b
cmp ebx, 0x80040211
je 0x3002ce1b
cmp ebx, 0x8007000e
je 0x3002ce1b
xor ebx, ebx
push dword [ebp - 0x1b30]
lea ecx, [ebp - 0x1ca0]
call fcn.3008b547
cmp ebx, edi
jl 0x3002ce60
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002ce60
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bd50
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xb
call fcn.300417ba
inc dword [ebp - 0x1b30]
cmp ebx, edi
jge 0x3002cbc6
cmp ebx, edi
jl 0x3002cec4
lea ecx, [ebp - 0x1d20]
call fcn.3008c051
mov esi, dword [ebp - 0x1b60]
call fcn.3002bbc6
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b58]
push eax
push 7
call fcn.30084f18
mov ebx, eax
cmp ebx, edi
jl 0x3002cec4
push dword [ebp - 0x1b58]
lea ecx, [ebp - 0x1ce0]
call fcn.3008bfb5
mov ebx, eax
cmp ebx, edi
mov dword [ebp - 0x1b30], 1
jl 0x3002d202
mov esi, dword [ebp - 0x1b30]
cmp esi, dword [ebp - 0x1c98]
ja 0x3002d202
mov edi, dword [ebp - 0x1b34]
push edi
push esi
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30043127
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xe
call fcn.3008a0d0
mov ebx, eax
test ebx, ebx
jne 0x3002d13c
cmp byte [edi + 0x1c], al
je 0x3002cf7e
mov ecx, dword [edi + 0x1eec]
lea eax, [ebp - 0x1c0c]
push eax
lea eax, [ebp - 0x1c38]
push eax
lea eax, [ebp - 0x1c34]
push eax
mov dword [ebp - 0x1c2c], esi
call fcn.30088270
mov ebx, eax
test ebx, ebx
jl 0x3002d15b
cmp ebx, 1
mov ecx, dword [ebp - 0x1c0c]
jne 0x3002cf62
mov ebx, 0x80030019
jmp 0x3002cf74
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xcf4], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xcf0], eax
test ecx, ecx
je 0x3002cf7e
mov eax, dword [ecx]
push 1
call dword [eax]
test ebx, ebx
jl 0x3002d15b
mov eax, dword [ebp - 0xcf0]
or eax, dword [ebp - 0xcf4]
je 0x3002d13a
lea eax, [ebp - 0x1b38]
push eax
push dword [ebp - 0xcf0]
lea ecx, [edi + 0x1c68]
push dword [ebp - 0xcf4]
call fcn.3008c23f
mov ebx, eax
test ebx, ebx
jl 0x3002d15b
cmp dword [ebp - 0x1b38], 0xf4240
jbe 0x3002cfd1
mov ebx, 0x8004022d
test ebx, ebx
jl 0x3002d15b
mov eax, dword [edi + 0x1f00]
mov edx, dword [eax]
xor ecx, ecx
push ecx
push dword [ebp - 0x1b38]
push eax
call dword [edx + 0x18]
mov ebx, eax
test ebx, ebx
jl 0x3002d15b
mov eax, dword [edi + 0x1ef8]
mov ecx, dword [eax]
push 0
push 0
push dword [ebp - 0xcf0]
push dword [ebp - 0xcf4]
push eax
call dword [ecx + 0x14]
mov ebx, eax
test ebx, ebx
jl 0x3002d15b
push dword [edi + 0x1efc]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
lea edx, [ebp - 0x1b74]
push edx
push dword [ebp - 0x1b38]
mov esi, eax
mov eax, dword [edi + 0x1ef8]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0xc]
mov ebx, eax
test ebx, ebx
mov eax, dword [ebp - 0x1b38]
jl 0x3002d05f
cmp dword [ebp - 0x1b74], eax
je 0x3002d05f
mov ebx, 0x8003001e
push 0
add eax, esi
push eax
push esi
call fcn.3001baa1
push dword [edi + 0x1efc]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [ebp - 0x1b3c], eax
call esi
test ebx, ebx
jl 0x3002d15b
mov eax, dword [ebp - 0xc70]
cmp dword [ebp - 0x1b3c], eax
je 0x3002d0a6
cmp byte [edi + 0x1c], 0
je 0x3002d135
test eax, eax
jne 0x3002d135
push 0
lea eax, [ebp - 0x1b88]
push eax
lea eax, [ebp - 0x1b4c]
push eax
push dword [ebp - 0x1b38]
lea ecx, [ebp - 0x1ce0]
call fcn.3008c4ab
mov ebx, eax
test ebx, ebx
jge 0x3002d0e3
mov eax, dword [0x30005bc8]
mov dword [ebp - 0x1b4c], eax
mov eax, dword [0x30005bcc]
mov dword [ebp - 0x1b48], eax
test ebx, ebx
mov eax, dword [ebp - 0x1b4c]
mov dword [ebp - 0xcf4], eax
mov eax, dword [ebp - 0x1b48]
mov dword [ebp - 0xcf0], eax
jl 0x3002d15b
push dword [edi + 0x1efc]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
push dword [ebp - 0x1b38]
lea ecx, [ebp - 0x1ce0]
push dword [ebp - 0x1b48]
push dword [ebp - 0x1b4c]
call fcn.3008c0fa
push dword [edi + 0x1efc]
mov ebx, eax
call esi
jmp 0x3002d13a
mov ebx, 0x8004022d
test ebx, ebx
jl 0x3002d15b
or dword [ebp - 0xdec], 1
and dword [ebp - 0xc68], 0xfffffff7
push 0
lea ecx, [ebp - 0xe04]
call fcn.3003f427
jmp 0x3002d1b1
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002d186
je 0x3002d1a0
cmp ebx, 0x80030004
jl 0x3002d19e
cmp ebx, 0x80030006
jle 0x3002d1a0
cmp ebx, 0x80030008
je 0x3002d1a0
cmp ebx, 0x80030013
jmp 0x3002d19c
cmp ebx, 0x80030070
je 0x3002d1a0
cmp ebx, 0x80040211
je 0x3002d1a0
cmp ebx, 0x8007000e
je 0x3002d1a0
xor ebx, ebx
push dword [ebp - 0x1b30]
lea ecx, [ebp - 0x1ca0]
call fcn.3008b547
test ebx, ebx
jl 0x3002d1e5
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002d1e5
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bd50
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xb
call fcn.300417ba
inc dword [ebp - 0x1b30]
test ebx, ebx
jge 0x3002ced6
test ebx, ebx
mov edi, dword [ebp - 0x1b34]
mov dword [ebp - 0x1b30], 1
jl 0x3002de92
mov eax, dword [ebp - 0x1b30]
cmp eax, dword [ebp - 0x1d88]
ja 0x3002d4e6
push edi
push eax
lea eax, [ebp - 0x1d90]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001b8f9
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0xf
call fcn.3008a0d0
or dword [ebp - 0x1bdc], 1
or dword [ebp - 0x1bdc], 1
or dword [ebp - 0x1bdc], 1
mov ebx, eax
xor eax, eax
cmp ebx, eax
mov dword [ebp - 0x1bb0], eax
mov dword [ebp - 0x1bac], eax
mov dword [ebp - 0x1ba8], eax
jl 0x3002d428
mov eax, dword [ebp - 0x1bb8]
or eax, dword [ebp - 0x1bbc]
je 0x3002d420
lea eax, [ebp - 0x1b38]
push eax
push dword [ebp - 0x1bb8]
lea ecx, [edi + 0x1c68]
push dword [ebp - 0x1bbc]
call fcn.3008c23f
mov ebx, eax
test ebx, ebx
jl 0x3002d428
cmp dword [ebp - 0x1b38], 0xf4240
jbe 0x3002d2cd
mov ebx, 0x8004022d
test ebx, ebx
jl 0x3002d428
mov eax, dword [edi + 0x1f00]
mov edx, dword [eax]
xor ecx, ecx
push ecx
push dword [ebp - 0x1b38]
push eax
call dword [edx + 0x18]
mov ebx, eax
test ebx, ebx
jl 0x3002d428
mov eax, dword [edi + 0x1ef8]
mov ecx, dword [eax]
push 0
push 0
push dword [ebp - 0x1bb8]
push dword [ebp - 0x1bbc]
push eax
call dword [ecx + 0x14]
mov ebx, eax
test ebx, ebx
jl 0x3002d428
push dword [edi + 0x1efc]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
lea edx, [ebp - 0x1b74]
push edx
push dword [ebp - 0x1b38]
mov esi, eax
mov eax, dword [edi + 0x1ef8]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0xc]
mov ebx, eax
test ebx, ebx
mov eax, dword [ebp - 0x1b38]
jl 0x3002d35b
cmp dword [ebp - 0x1b74], eax
je 0x3002d35b
mov ebx, 0x8003001e
push 0
add eax, esi
push eax
push esi
call fcn.3001baa1
push dword [edi + 0x1efc]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
test ebx, ebx
jl 0x3002d428
cmp esi, dword [ebp - 0x1bb4]
jne 0x3002d41b
push 0
lea eax, [ebp - 0x1b88]
push eax
lea eax, [ebp - 0x1b4c]
push eax
push dword [ebp - 0x1b38]
lea ecx, [ebp - 0x1ce0]
call fcn.3008c4ab
mov ebx, eax
test ebx, ebx
jge 0x3002d3c5
mov eax, dword [0x30005bc8]
mov dword [ebp - 0x1b4c], eax
mov eax, dword [0x30005bcc]
mov dword [ebp - 0x1b48], eax
test ebx, ebx
mov eax, dword [ebp - 0x1b4c]
mov dword [ebp - 0x1bbc], eax
mov eax, dword [ebp - 0x1b48]
mov dword [ebp - 0x1bb8], eax
jl 0x3002d428
push dword [edi + 0x1efc]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
push dword [ebp - 0x1b38]
lea ecx, [ebp - 0x1ce0]
push dword [ebp - 0x1b48]
push dword [ebp - 0x1b4c]
call fcn.3008c0fa
push dword [edi + 0x1efc]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x3002d420
mov ebx, 0x8004022d
test ebx, ebx
jl 0x3002d428
push 0
jmp 0x3002d47c
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002d453
je 0x3002d46d
cmp ebx, 0x80030004
jl 0x3002d46b
cmp ebx, 0x80030006
jle 0x3002d46d
cmp ebx, 0x80030008
je 0x3002d46d
cmp ebx, 0x80030013
jmp 0x3002d469
cmp ebx, 0x80030070
je 0x3002d46d
cmp ebx, 0x80040211
je 0x3002d46d
cmp ebx, 0x8007000e
je 0x3002d46d
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x1bb8], eax
mov dword [ebp - 0x1bbc], eax
push eax
or dword [ebp - 0x1bdc], 1
and dword [ebp - 0x1b9c], 0xfffffffd
lea ecx, [ebp - 0x1bf4]
call fcn.3008a230
test ebx, ebx
jl 0x3002d4c9
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002d4c9
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bd50
mov ebx, eax
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0xb
call fcn.3001babc
inc dword [ebp - 0x1b30]
test ebx, ebx
jge 0x3002d21a
test ebx, ebx
jl 0x3002de92
lea ecx, [ebp - 0x1ce0]
call fcn.3008c051
mov esi, dword [ebp - 0x1b58]
call fcn.3002bbc6
cmp byte [edi + 0x1c], 0
je 0x3002d684
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b40]
push eax
push 8
call fcn.30084f18
mov ebx, eax
test ebx, ebx
jl 0x3002d547
push 0x300bdcd8
push 0x14
push 0x2000
push dword [ebp - 0x1b40]
lea ecx, [ebp - 0xe90]
call fcn.3008818a
mov ebx, eax
xor esi, esi
inc esi
test ebx, ebx
jl 0x3002de92
cmp esi, dword [ebp - 0x1c98]
ja 0x3002d65a
push edi
push esi
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30043127
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x10
call fcn.3008a0d0
mov ebx, eax
test ebx, ebx
jne 0x3002d5bb
mov eax, dword [ebp - 0xcf4]
mov dword [ebp - 0x1c24], eax
mov eax, dword [ebp - 0xcf0]
mov dword [ebp - 0x1c20], eax
lea eax, [ebp - 0x1c34]
push eax
lea ecx, [ebp - 0xe90]
mov dword [ebp - 0x1c2c], esi
call fcn.300890c3
mov ebx, eax
test ebx, ebx
jge 0x3002d612
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002d5e8
je 0x3002d602
cmp ebx, 0x80030004
jl 0x3002d600
cmp ebx, 0x80030006
jle 0x3002d602
cmp ebx, 0x80030008
je 0x3002d602
cmp ebx, 0x80030013
jmp 0x3002d5fe
cmp ebx, 0x80030070
je 0x3002d602
cmp ebx, 0x80040211
je 0x3002d602
cmp ebx, 0x8007000e
je 0x3002d602
xor ebx, ebx
push esi
lea ecx, [ebp - 0x1ca0]
call fcn.3008b547
test ebx, ebx
jl 0x3002d642
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002d642
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bd50
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xb
call fcn.300417ba
inc esi
test ebx, ebx
jge 0x3002d552
test ebx, ebx
jl 0x3002de92
lea ecx, [ebp - 0xe90]
call fcn.30086ec5
mov esi, dword [ebp - 0x1b40]
call fcn.3002bbc6
mov eax, dword [ebp - 0x1b40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0xc5c]
call fcn.3002b9f5
lea eax, [ebp - 0x1b80]
push eax
push 6
lea ecx, [ebp - 0x1f04]
mov byte [ebp - 4], 0x11
call fcn.30084f18
mov ebx, eax
test ebx, ebx
jl 0x3002d6cc
push 0x300bdcbc
push 0x14
push 0x2000
push dword [ebp - 0x1b80]
lea ecx, [ebp - 0xf1c]
call fcn.3008818a
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x1b30], 1
jl 0x3002d822
mov eax, dword [ebp - 0x1b30]
cmp eax, dword [ebp - 0x1c98]
ja 0x3002d808
push edi
push eax
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30043127
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x12
call fcn.3008a0d0
mov ebx, eax
test ebx, ebx
jne 0x3002d75f
mov eax, dword [ebp - 0x1b30]
mov dword [ebp - 0xc44], eax
lea eax, [ebp - 0x1c1c]
push eax
lea ecx, [ebp - 0xe04]
call fcn.3003f31b
mov esi, eax
lea edi, [ebp - 0xc54]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0xc5c]
push eax
lea ecx, [ebp - 0xf1c]
movsd dword es:[edi], dword [esi]
call fcn.300890c3
mov edi, dword [ebp - 0x1b34]
mov ebx, eax
test ebx, ebx
jge 0x3002d7bb
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002d78c
je 0x3002d7a6
cmp ebx, 0x80030004
jl 0x3002d7a4
cmp ebx, 0x80030006
jle 0x3002d7a6
cmp ebx, 0x80030008
je 0x3002d7a6
cmp ebx, 0x80030013
jmp 0x3002d7a2
cmp ebx, 0x80030070
je 0x3002d7a6
cmp ebx, 0x80040211
je 0x3002d7a6
cmp ebx, 0x8007000e
je 0x3002d7a6
xor ebx, ebx
push dword [ebp - 0x1b30]
lea ecx, [ebp - 0x1ca0]
call fcn.3008b547
test ebx, ebx
jl 0x3002d7eb
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002d7eb
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bd50
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x11
call fcn.300417ba
inc dword [ebp - 0x1b30]
test ebx, ebx
jge 0x3002d6de
test ebx, ebx
jl 0x3002d822
lea ecx, [ebp - 0xf1c]
call fcn.30086ec5
mov esi, dword [ebp - 0x1b80]
call fcn.3002bbc6
lea ecx, [ebp - 0xc5c]
mov byte [ebp - 4], 0xb
call fcn.30086e2d
test ebx, ebx
jl 0x3002de92
lea eax, [ebp - 0x1b7c]
push eax
push 3
lea ecx, [ebp - 0x1f04]
call fcn.30084f18
mov ebx, eax
test ebx, ebx
jl 0x3002de92
push 0x300bd268
push 0x14
push 0x2000
push dword [ebp - 0x1b7c]
lea ecx, [ebp - 0xfa8]
call fcn.3008818a
mov ebx, eax
test ebx, ebx
jl 0x3002de92
cmp byte [edi + 0x1c], 0
mov eax, dword [edi + 0x1478]
mov dword [ebp - 0x1c08], eax
mov eax, dword [ebp - 0x1b64]
mov dword [edi + 0x1478], eax
mov eax, dword [edi + 0x147c]
mov dword [ebp - 0x1c00], eax
mov eax, dword [ebp - 0x1b6c]
mov dword [edi + 0x147c], eax
mov eax, dword [edi + 0x1ef4]
mov dword [ebp - 0x1b94], eax
mov eax, dword [ebp - 0x1b60]
mov dword [edi + 0x1ef4], eax
mov eax, dword [edi + 0x1ef8]
mov dword [ebp - 0x1b90], eax
mov eax, dword [ebp - 0x1b58]
mov dword [edi + 0x1ef8], eax
mov eax, dword [edi + 0x1eec]
mov dword [ebp - 0x1c10], eax
je 0x3002d8fc
lea eax, [ebp - 0xe90]
mov dword [edi + 0x1eec], eax
lea ecx, [ebp - 0x14f4]
call fcn.3002b855
lea esi, [edi + 0x1c28]
mov ecx, esi
mov byte [ebp - 4], 0x13
call fcn.3008c051
mov ebx, eax
test ebx, ebx
jl 0x3002de47
mov ecx, esi
call fcn.3008c48e
mov ebx, eax
test ebx, ebx
jl 0x3002de47
lea esi, [edi + 0x1c68]
mov ecx, esi
call fcn.3008c051
mov ebx, eax
test ebx, ebx
jl 0x3002de47
mov ecx, esi
call fcn.3008c48e
mov ebx, eax
test ebx, ebx
jl 0x3002de47
push 1
push dword [ebp - 0x1b60]
lea ecx, [edi + 0x1c28]
call fcn.3008c01e
mov ebx, eax
test ebx, ebx
jl 0x3002de47
push 1
push dword [ebp - 0x1b58]
mov ecx, esi
call fcn.3008c01e
mov ebx, eax
test ebx, ebx
jl 0x3002de47
xor esi, esi
inc esi
cmp esi, dword [ebp - 0x1c98]
ja 0x3002dae0
push edi
push esi
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30043127
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x14
call fcn.3008a0d0
mov ebx, eax
test ebx, ebx
jne 0x3002da96
lea eax, [ebp - 0x1b8c]
push eax
lea ecx, [ebp - 0xe04]
call fcn.300422a4
mov ebx, eax
test ebx, ebx
jl 0x3002da43
mov eax, dword [ebp - 0x1b8c]
test eax, eax
je 0x3002da3f
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x3002d9f2
sub eax, edx
sar eax, 1
je 0x3002da3f
push dword [ebp - 0xdbc]
mov eax, dword [ebp - 0xdfc]
push dword [ebp - 0x1b8c]
lea ecx, [ebp - 0x14f4]
mov dword [ebp - 0x10d8], eax
call fcn.3007ff5b
mov ebx, eax
test ebx, ebx
jl 0x3002da43
lea eax, [ebp - 0x14f4]
push eax
lea ecx, [ebp - 0xfa8]
call fcn.300890c3
mov ebx, eax
test ebx, ebx
jge 0x3002da98
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002da6e
je 0x3002da88
cmp ebx, 0x80030004
jl 0x3002da86
cmp ebx, 0x80030006
jle 0x3002da88
cmp ebx, 0x80030008
je 0x3002da88
cmp ebx, 0x80030013
jmp 0x3002da84
cmp ebx, 0x80030070
je 0x3002da88
cmp ebx, 0x80040211
je 0x3002da88
cmp ebx, 0x8007000e
je 0x3002da88
xor ebx, ebx
push esi
lea ecx, [ebp - 0x1ca0]
call fcn.3008b547
test ebx, ebx
jl 0x3002dac8
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002dac8
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bd50
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x13
call fcn.300417ba
inc esi
test ebx, ebx
jge 0x3002d994
test ebx, ebx
jl 0x3002dafa
lea ecx, [ebp - 0xfa8]
call fcn.30086ec5
mov esi, dword [ebp - 0x1b7c]
call fcn.3002bbc6
lea ecx, [ebp - 0x1b28]
call fcn.3001c861
xor esi, esi
lea ecx, [ebp - 0xc5c]
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x1b3c], esi
mov dword [ebp - 0x1b84], esi
call fcn.300443a8
cmp ebx, esi
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x1b68], esi
jl 0x3002db69
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b78]
push eax
push 5
call fcn.30084f18
mov ebx, eax
cmp ebx, esi
jl 0x3002db69
push 0x300bd688
push 0x14
push 0x2000
push dword [ebp - 0x1b78]
lea ecx, [ebp - 0x1034]
call fcn.3008818a
mov ebx, eax
cmp ebx, esi
mov dword [ebp - 0x1b30], 2
jl 0x3002dde2
mov esi, dword [sym.imp.MSO.dll_Ordinal_926]
mov eax, dword [ebp - 0x1b30]
cmp eax, dword [ebp - 0x1d88]
ja 0x3002ddc8
push edi
push eax
lea eax, [ebp - 0x1d90]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001b8f9
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0x17
call fcn.3008a0d0
mov ebx, eax
test ebx, ebx
jne 0x3002dd79
mov eax, dword [ebp - 0x1bb8]
or eax, dword [ebp - 0x1bbc]
jne 0x3002dc57
or dword [ebp - 0x1b9c], 1
inc dword [ebp - 0x1b3c]
push 0xa
push dword [ebp - 0x1b3c]
lea eax, [ebp - 0x626]
push 0x103
push eax
mov word [ebp - 0x628], 0x2f
call esi
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001c4ed
mov ebx, eax
test ebx, ebx
jl 0x3002dc94
push 0xa
push dword [ebp - 0x1b3c]
lea eax, [ebp - 0x628]
push 0x104
push eax
call esi
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001c576
mov ebx, eax
test ebx, ebx
jl 0x3002dc94
push 0
lea ecx, [ebp - 0x1bf4]
call fcn.3008a230
mov ebx, eax
test ebx, ebx
jl 0x3002dc94
lea eax, [ebp - 0x1b84]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001c44d
mov ebx, eax
test ebx, ebx
jl 0x3002dc94
lea eax, [ebp - 0x1b68]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001c475
mov ebx, eax
test ebx, ebx
jl 0x3002dc94
cmp dword [ebp - 0x1b84], 0
je 0x3002dd2b
cmp dword [ebp - 0x1b68], 0
je 0x3002dd2b
test ebx, ebx
jl 0x3002dd23
push 0
push 0
push dword [ebp - 0x1b84]
lea ecx, [ebp - 0x1dac]
call fcn.300446fc
push eax
lea ecx, [ebp - 0xc5c]
mov byte [ebp - 4], 0x18
call fcn.3004462d
lea ecx, [ebp - 0x1dac]
mov ebx, eax
mov byte [ebp - 4], 0x17
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
test ebx, ebx
jl 0x3002dd23
push dword [ebp - 0x1bc8]
lea ecx, [ebp - 0xc5c]
push dword [ebp - 0x1b68]
push dword [ebp - 0x1b30]
call fcn.300446ea
push eax
lea ecx, [ebp - 0x1b28]
call fcn.3001c711
mov ebx, eax
test ebx, ebx
jl 0x3002dd23
lea eax, [ebp - 0x1b28]
push eax
lea ecx, [ebp - 0x1034]
call fcn.300890c3
mov ebx, eax
cmp ebx, 0x80040202
jne 0x3002dd3e
xor eax, eax
mov dword [ebp - 0x1bb8], eax
mov dword [ebp - 0x1bbc], eax
jmp 0x3002dbc6
test ebx, ebx
jl 0x3002ddab
or dword [ebp - 0x1bdc], 1
or dword [ebp - 0x1bdc], 1
or dword [ebp - 0x1bdc], 1
xor eax, eax
push eax
lea ecx, [ebp - 0x1bf4]
mov dword [ebp - 0x1bb0], eax
mov dword [ebp - 0x1bac], eax
mov dword [ebp - 0x1ba8], eax
call fcn.3008a230
test ebx, ebx
jl 0x3002ddab
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002ddab
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bd50
mov ebx, eax
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0x16
call fcn.3001babc
inc dword [ebp - 0x1b30]
test ebx, ebx
jge 0x3002db81
test ebx, ebx
jl 0x3002dde2
lea ecx, [ebp - 0x1034]
call fcn.30086ec5
mov esi, dword [ebp - 0x1b78]
call fcn.3002bbc6
lea ebx, [edi + 0x1c28]
mov ecx, ebx
call fcn.3008c48e
lea esi, [edi + 0x1484]
push dword [esi]
mov ecx, ebx
push dword [ebp - 0x1b94]
call fcn.3008c01e
mov ebx, eax
test ebx, ebx
jl 0x3002de28
lea ebx, [edi + 0x1c68]
mov ecx, ebx
call fcn.3008c48e
push dword [esi]
mov ecx, ebx
push dword [ebp - 0x1b90]
call fcn.3008c01e
mov ebx, eax
lea ecx, [ebp - 0xc5c]
mov byte [ebp - 4], 0x15
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x1b28]
mov byte [ebp - 4], 0x13
call fcn.30086e2d
mov eax, dword [ebp - 0x1c08]
mov dword [edi + 0x1478], eax
mov eax, dword [ebp - 0x1b94]
mov dword [edi + 0x1ef4], eax
mov eax, dword [ebp - 0x1c00]
mov dword [edi + 0x147c], eax
mov eax, dword [ebp - 0x1b90]
mov dword [edi + 0x1ef8], eax
mov eax, dword [ebp - 0x1c10]
lea ecx, [ebp - 0x14f4]
mov dword [edi + 0x1eec], eax
mov byte [ebp - 4], 0xb
call fcn.30086e2d
mov eax, dword [ebp - 0x1b80]
test eax, eax
je 0x3002dea2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1b7c]
test eax, eax
je 0x3002deb2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1b78]
test eax, eax
je 0x3002dec2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test ebx, ebx
jl 0x3002df13
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b40]
push eax
push 4
call fcn.30084f18
mov ebx, eax
test ebx, ebx
jl 0x3002df13
push dword [ebp - 0x1b58]
lea eax, [ebp - 0x1ce0]
push eax
push 2
push 0x2000
push dword [ebp - 0x1b40]
lea ecx, [ebp - 0x10d4]
call fcn.30031aa9
mov ebx, eax
mov eax, dword [ebp - 0x1b40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1b60]
test eax, eax
je 0x3002df23
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1b58]
test eax, eax
je 0x3002df33
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test ebx, ebx
jl 0x3002e057
lea ecx, [ebp - 0x1ca0]
call fcn.3008afa9
lea ecx, [ebp - 0x1ca0]
call fcn.30089d86
lea ecx, [ebp - 0x1d90]
call fcn.3008afa9
lea ecx, [ebp - 0x1d90]
call fcn.30089d86
lea ecx, [ebp - 0x1d20]
call fcn.3008c48e
lea ecx, [ebp - 0x1ce0]
call fcn.3008c48e
lea ecx, [ebp - 0xf1c]
call fcn.30086ecd
cmp byte [edi + 0x1c], 0
je 0x3002df99
lea ecx, [ebp - 0xe90]
call fcn.30086ecd
lea ecx, [ebp - 0xfa8]
call fcn.30086ecd
lea ecx, [ebp - 0x1034]
call fcn.30086ecd
lea ecx, [ebp - 0x10d4]
call fcn.30086ec5
lea ecx, [ebp - 0x10d4]
call fcn.30031b19
push 0
lea ebx, [edi + 0x1490]
push dword [ebx + 4]
lea ecx, [ebp - 0x1f04]
push dword [ebx]
push 0xffffffffffffffff
call fcn.30083655
push 0
push dword [ebx + 4]
lea ecx, [ebp - 0x205c]
push dword [ebx]
push 0xffffffffffffffff
call fcn.30083655
mov eax, dword [edi + 0x1f2c]
mov esi, dword [edi + 0x1f28]
push dword [ebp - 0x1b64]
mov dword [ebp - 0x1c10], eax
mov eax, dword [ebp - 0x1bfc]
mov dword [edi + 0x1f28], eax
mov eax, dword [ebp - 0x1bf8]
mov ecx, edi
mov dword [edi + 0x1f2c], eax
call fcn.3005c910
mov ebx, eax
test ebx, ebx
jl 0x3002e045
cmp byte [edi + 0x1c], 0
je 0x3002e045
push dword [ebp - 0x1b6c]
mov ecx, edi
call fcn.3005c910
mov ebx, eax
mov eax, dword [ebp - 0x1c10]
mov dword [edi + 0x1f28], esi
mov dword [edi + 0x1f2c], eax
cmp dword [ebp - 0x1b64], 0xffffffff
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x3002e06e
push dword [ebp - 0x1b64]
call esi
cmp dword [ebp - 0x1b6c], 0xffffffff
je 0x3002e07f
push dword [ebp - 0x1b6c]
call esi
and word [ebp - 0x420], 0
mov esi, 0x206
push esi
lea eax, [ebp - 0x41e]
push 0
push eax
call sub.MSVCR80.dll_memset
and word [ebp - 0x218], 0
push esi
lea eax, [ebp - 0x216]
push 0
push eax
call sub.MSVCR80.dll_memset
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileW]
add esp, 0x18
test ebx, ebx
jl 0x3002e2bf
mov al, byte [edi + 0x1c]
mov ecx, edi
mov byte [ebp - 0x1b59], al
call fcn.3005b85a
mov ebx, eax
test ebx, ebx
mov al, byte [ebp - 0x1b59]
mov byte [edi + 0x1c], al
jl 0x3002e293
mov eax, dword [ebp - 0x1b34]
add eax, 0x1e
mov dword [ebp - 0x1b3c], eax
push eax
mov eax, 0x104
lea edi, [ebp - 0x420]
call fcn.3002c0da
test al, al
je 0x3002e293
mov eax, edi
push eax
push dword [ebp - 0x1b3c]
call esi
test eax, eax
jne 0x3002e1cc
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jle 0x3002e236
call esi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
test ebx, ebx
jl 0x3002e298
mov eax, dword [ebp - 0x1b34]
cmp byte [eax + 0x1c], 0
je 0x3002e298
add eax, 0x226
push eax
mov eax, 0x104
lea edi, [ebp - 0x218]
call fcn.3002c0da
test al, al
je 0x3002e298
mov eax, edi
mov edi, dword [sym.imp.KERNEL32.dll_MoveFileW]
push eax
mov eax, dword [ebp - 0x1b34]
add eax, 0x226
push eax
mov dword [ebp - 0x1c10], eax
call edi
test eax, eax
je 0x3002e275
push dword [ebp - 0x1c10]
lea eax, [ebp - 0x218]
push eax
mov dword [ebp - 0x1b70], 1
call edi
test eax, eax
jne 0x3002e298
call esi
test eax, eax
jg 0x3002e23f
call esi
mov ebx, eax
jmp 0x3002e24f
push dword [ebp - 0x1b3c]
lea eax, [ebp - 0x830]
push eax
mov dword [ebp - 0x1b70], 1
call esi
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
jne 0x3002e141
call esi
test eax, eax
jg 0x3002e1ff
call esi
mov ebx, eax
jmp 0x3002e20f
call esi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
push dword [ebp - 0x1b3c]
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x3002e127
and dword [ebp - 0x1b70], 0
jmp 0x3002e141
call esi
mov ebx, eax
jmp 0x3002e141
call esi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
mov eax, dword [ebp - 0x1b34]
add eax, 0x226
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x3002e275
and dword [ebp - 0x1b70], 0
jmp 0x3002e298
call esi
test eax, eax
jg 0x3002e281
call esi
mov ebx, eax
jmp 0x3002e298
call esi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
jmp 0x3002e298
mov ebx, 0x80030050
mov ecx, dword [ebp - 0x1b34]
lea eax, [ecx + 0x42e]
push eax
push 0xf
lea eax, [ecx + 0x226]
push eax
lea eax, [ecx + 0x1e]
push eax
call fcn.3005dfac
test eax, eax
jge 0x3002e2dd
mov ebx, eax
jmp 0x3002e2dd
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x830]
push eax
call esi
cmp byte [edi + 0x1c], 0
je 0x3002e2dd
lea eax, [ebp - 0xc40]
push eax
call esi
test ebx, ebx
mov edi, dword [ebp - 0x1b34]
jl 0x3002e304
push dword [ebp - 0x1b44]
mov ecx, edi
push 0
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
call fcn.3002c39d
mov ebx, eax
test ebx, ebx
mov dword [edi + 0x2158], 1
jl 0x3002e34b
mov ecx, edi
call fcn.3005d8e5
mov esi, dword [edi + 0x1ef8]
call fcn.3002bbc6
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x420]
push eax
call esi
cmp byte [edi + 0x1c], 0
je 0x3002e3f2
lea eax, [ebp - 0x218]
push eax
call esi
jmp 0x3002e3f2
cmp dword [ebp - 0x1b70], 0
je 0x3002e3f2
and dword [ebp - 0x1b3c], 0
mov ecx, edi
call fcn.3005b85a
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [edi + 0x1e]
push eax
call esi
test eax, eax
je 0x3002e38b
lea eax, [edi + 0x1e]
push eax
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x3002e395
mov dword [ebp - 0x1b3c], 0x80004005
cmp byte [edi + 0x1c], 0
je 0x3002e3ca
lea eax, [edi + 0x226]
push eax
call esi
test eax, eax
je 0x3002e3c0
lea eax, [edi + 0x226]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x3002e3ca
mov dword [ebp - 0x1b3c], 0x80004005
cmp dword [ebp - 0x1b3c], 0
jl 0x3002e3f2
lea eax, [edi + 0x42e]
push eax
push dword [edi + 0x1480]
lea eax, [edi + 0x226]
push eax
lea eax, [edi + 0x1e]
push eax
mov ecx, edi
call fcn.3005dfac
push ebx
push dword [ebp - 0x1b44]
call fcn.3002bda7
cmp ebx, 0x80004004
jne 0x3002e40b
mov ebx, 0x80040e4e
lea ecx, [ebp - 0x1c34]
mov byte [ebp - 4], 0xa
call fcn.30086e2d
lea ecx, [ebp - 0x10d4]
mov byte [ebp - 4], 9
call fcn.300319d4
lea ecx, [ebp - 0x1034]
mov byte [ebp - 4], 8
call fcn.300870f5
lea ecx, [ebp - 0xe90]
mov byte [ebp - 4], 7
call fcn.300870f5
lea ecx, [ebp - 0xfa8]
mov byte [ebp - 4], 6
call fcn.300870f5
lea ecx, [ebp - 0xf1c]
mov byte [ebp - 4], 5
call fcn.300870f5
lea ecx, [ebp - 0x1ce0]
mov byte [ebp - 4], 4
call fcn.3008bf75
lea ecx, [ebp - 0x1d20]
mov byte [ebp - 4], 3
call fcn.3008bf75
lea ecx, [ebp - 0x1d90]
mov byte [ebp - 4], 2
call fcn.3001c097
lea ecx, [ebp - 0x1ca0]
mov byte [ebp - 4], 1
call fcn.3002be1f
lea ecx, [ebp - 0x205c]
mov byte [ebp - 4], 0
call fcn.30082454
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1f04]
call fcn.30082454
mov eax, ebx
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.30085c36
leave
ret 4