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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x300a1376
mov eax, dword fs:[0]
push eax
mov eax, 0x2050
call fcn.30086bea
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.30082f0f
lea ecx, [ebp - 0x205c]
mov dword [ebp - 4], edi
call fcn.30082f0f
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.3002b978
mov dword [ebp - fcn.30089d74], 0x30002fe4
lea ecx, [ebp - 0x1d90]
mov byte [ebp - 4], 2
call fcn.3001c262
lea ecx, [ebp - 0x1d20]
mov byte [ebp - 4], 3
call fcn.3008bac3
mov esi, 0x30002f64
mov dword [ebp - 0x1d20], esi
lea ecx, [ebp - 0x1ce0]
mov byte [ebp - 4], 4
call fcn.3008bac3
mov dword [ebp - 0x1ce0], esi
lea ecx, [ebp - 0xf1c]
mov byte [ebp - 4], 5
call fcn.30087407
mov dword [ebp - 0xf1c], 0x30002f7c
lea ecx, [ebp - 0xfa8]
mov byte [ebp - 4], 6
call fcn.30087407
mov dword [ebp - 0xfa8], 0x30002f88
lea ecx, [ebp - 0xe90]
mov byte [ebp - 4], 7
call fcn.30087407
mov dword [ebp - 0xe90], 0x30002f94
lea ecx, [ebp - 0x1034]
mov byte [ebp - 4], 8
call fcn.30087407
mov dword [ebp - 0x1034], 0x30002fa0
mov esi, dword [ebp - 0x1b34]
push esi
lea ecx, [ebp - 0x10d4]
mov byte [ebp - 4], 9
call fcn.30031627
lea ecx, [ebp - 0x1c34]
mov byte [ebp - 4], 0xa
call fcn.3002b861
mov ecx, esi
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x1bf8], edi
mov dword [ebp - 0x1bfc], edi
call fcn.3005daeb
mov dword [esi + 0x2158], 2
lea eax, [ebp - 0xa38]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x3002c5de
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 0x3002c5e8
mov ebx, 0x80004005
jmp 0x3002c902
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 0x3002c629
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.30043dd4
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
mov eax, dword [ebp - 0x1b34]
cmp byte [eax + 0x1c], 0
je 0x3002c693
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 0x3002c658
mov ebx, 0x80004005
cmp ebx, edi
jl 0x3002c902
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 0x3002c693
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.30043dd4
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
push 1
call fcn.3005b68f
push 1
push edi
mov esi, eax
push esi
push dword [ebp - 0x1b64]
lea ecx, [ebp - 0x1f04]
call fcn.30083977
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
mov eax, dword [ebp - 0x1b34]
cmp byte [eax + 0x1c], 0
je 0x3002c6ee
push 1
push edi
push esi
push dword [ebp - 0x1b6c]
lea ecx, [ebp - 0x205c]
call fcn.30083977
mov ebx, eax
lea eax, [ebp - 0x205c]
jmp 0x3002c6f4
lea eax, [ebp - 0x1f04]
cmp ebx, edi
mov dword [ebp - 0x1b54], eax
jl 0x3002c902
lea ecx, [ebp - 0x1f04]
call fcn.3008362b
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
lea eax, [ebp - 0x1b40]
push eax
push edi
lea ecx, [ebp - 0x1f04]
call fcn.3008523a
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
mov ecx, dword [ebp - 0x1b34]
lea eax, [ebp - 0x1c04]
push eax
push 1
push dword [ebp - 0x1b40]
add ecx, 0x1b50
call fcn.3008b8d5
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
mov esi, dword [ebp - 0x1b40]
call fcn.3002b949
push 2
push 1
push dword [ebp - 0x1b40]
lea ecx, [ebp - 0x1ca0]
call fcn.3002c042
mov ebx, eax
mov eax, dword [ebp - 0x1b40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp ebx, edi
jl 0x3002c902
mov edx, dword [ebp - 0x1c98]
mov ecx, dword [ebp - 0x1b34]
mov eax, edx
imul eax, eax, 7
cmp byte [ecx + 0x1c], 0
je 0x3002c7ad
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.3002bab4
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b40]
push eax
push 1
call fcn.3008523a
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
mov ecx, dword [ebp - 0x1b34]
lea eax, [ebp - 0x1c04]
push eax
push edi
push dword [ebp - 0x1b40]
add ecx, 0x1bb8
call fcn.3008b8d5
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
mov esi, dword [ebp - 0x1b40]
call fcn.3002b949
push 2
push 1
push dword [ebp - 0x1b40]
lea ecx, [ebp - 0x1d90]
call fcn.3002c09e
mov ebx, eax
mov eax, dword [ebp - 0x1b40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp ebx, edi
jl 0x3002c902
mov ebx, dword [ebp - 0x1d88]
mov esi, dword [ebp - 0x1b34]
jmp 0x3002c8b1
push esi
push ebx
lea eax, [ebp - 0x1d90]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001bade
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.3008a471
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0xb
call fcn.3001bca1
inc ebx
cmp ebx, dword [esi + 0x1bc0]
jbe 0x3002c864
lea eax, [ebp - 0x1b60]
push eax
push 2
lea ecx, [ebp - 0x1f04]
call fcn.3008523a
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
push dword [ebp - 0x1b60]
lea ecx, [ebp - 0x1d20]
call fcn.3008c1b8
mov ebx, eax
cmp ebx, edi
jl 0x3002c902
lea eax, [ebp - 0x1d20]
push eax
lea eax, [ebp - 0x1bfc]
push eax
mov ecx, esi
call fcn.3005ba94
mov ebx, eax
cmp ebx, edi
mov dword [ebp - 0x1b30], 1
jl 0x3002cc18
mov esi, dword [ebp - 0x1b34]
mov eax, dword [ebp - 0x1b30]
cmp eax, dword [ebp - 0x1c98]
ja 0x3002cbd1
push esi
push eax
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30042e23
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xd
call fcn.3008a311
mov ebx, eax
cmp ebx, edi
jl 0x3002cb2a
mov eax, dword [ebp - 0xcf8]
or eax, dword [ebp - 0xcfc]
je 0x3002cb0a
lea eax, [ebp - 0x1b38]
push eax
push dword [ebp - 0xcf8]
lea ecx, [esi + 0x1c28]
push dword [ebp - 0xcfc]
call fcn.3008c442
mov ebx, eax
cmp ebx, edi
jl 0x3002cb2a
cmp dword [ebp - 0x1b38], 0xf4240
jbe 0x3002c9a4
mov ebx, 0x8004022d
cmp ebx, edi
jl 0x3002cb2a
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 0x3002cb2a
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 0x3002cb2a
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 0x3002ca37
cmp dword [ebp - 0x1b74], eax
je 0x3002ca37
mov ebx, 0x8003001e
mov ecx, dword [ebp - 0x1b68]
push edi
add eax, ecx
push eax
push ecx
call fcn.3001bc86
push dword [esi + 0x1efc]
mov dword [ebp - 0x1b3c], eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp ebx, edi
jl 0x3002cb2a
mov eax, dword [ebp - 0x1b3c]
cmp eax, dword [ebp - 0xc74]
jne 0x3002cb05
push edi
lea eax, [ebp - 0x1b88]
push eax
lea eax, [ebp - 0x1b4c]
push eax
push dword [ebp - 0x1b38]
lea ecx, [ebp - 0x1d20]
call fcn.3008c6cd
mov ebx, eax
cmp ebx, edi
jge 0x3002caaf
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 0x3002cb2a
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.3008c2fd
push dword [esi + 0x1efc]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x3002cb0a
mov ebx, 0x8004022d
cmp ebx, edi
jl 0x3002cb2a
or dword [ebp - 0xdec], 1
and dword [ebp - 0xc68], 0xfffffff7
push edi
lea ecx, [ebp - 0xe04]
call fcn.3003f106
jmp 0x3002cb80
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002cb55
je 0x3002cb6f
cmp ebx, 0x80030004
jl 0x3002cb6d
cmp ebx, 0x80030006
jle 0x3002cb6f
cmp ebx, 0x80030008
je 0x3002cb6f
cmp ebx, 0x80030013
jmp 0x3002cb6b
cmp ebx, 0x80030070
je 0x3002cb6f
cmp ebx, 0x80040211
je 0x3002cb6f
cmp ebx, 0x8007000e
je 0x3002cb6f
xor ebx, ebx
push dword [ebp - 0x1b30]
lea ecx, [ebp - 0x1ca0]
call fcn.3008b74a
cmp ebx, edi
jl 0x3002cbb4
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002cbb4
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bab4
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xb
call fcn.300414b6
inc dword [ebp - 0x1b30]
cmp ebx, edi
jge 0x3002c91a
cmp ebx, edi
jl 0x3002cc18
lea ecx, [ebp - 0x1d20]
call fcn.3008c254
mov esi, dword [ebp - 0x1b60]
call fcn.3002b949
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b58]
push eax
push 7
call fcn.3008523a
mov ebx, eax
cmp ebx, edi
jl 0x3002cc18
push dword [ebp - 0x1b58]
lea ecx, [ebp - 0x1ce0]
call fcn.3008c1b8
mov ebx, eax
cmp ebx, edi
mov dword [ebp - 0x1b30], 1
jl 0x3002cf56
mov esi, dword [ebp - 0x1b30]
cmp esi, dword [ebp - 0x1c98]
ja 0x3002cf56
mov edi, dword [ebp - 0x1b34]
push edi
push esi
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30042e23
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xe
call fcn.3008a311
mov ebx, eax
test ebx, ebx
jne 0x3002ce90
cmp byte [edi + 0x1c], al
je 0x3002ccd2
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.300884b1
mov ebx, eax
test ebx, ebx
jl 0x3002ceaf
cmp ebx, 1
mov ecx, dword [ebp - 0x1c0c]
jne 0x3002ccb6
mov ebx, 0x80030019
jmp 0x3002ccc8
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xcf4], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xcf0], eax
test ecx, ecx
je 0x3002ccd2
mov eax, dword [ecx]
push 1
call dword [eax]
test ebx, ebx
jl 0x3002ceaf
mov eax, dword [ebp - 0xcf0]
or eax, dword [ebp - 0xcf4]
je 0x3002ce8e
lea eax, [ebp - 0x1b38]
push eax
push dword [ebp - 0xcf0]
lea ecx, [edi + 0x1c68]
push dword [ebp - 0xcf4]
call fcn.3008c442
mov ebx, eax
test ebx, ebx
jl 0x3002ceaf
cmp dword [ebp - 0x1b38], 0xf4240
jbe 0x3002cd25
mov ebx, 0x8004022d
test ebx, ebx
jl 0x3002ceaf
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 0x3002ceaf
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 0x3002ceaf
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 0x3002cdb3
cmp dword [ebp - 0x1b74], eax
je 0x3002cdb3
mov ebx, 0x8003001e
push 0
add eax, esi
push eax
push esi
call fcn.3001bc86
push dword [edi + 0x1efc]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [ebp - 0x1b3c], eax
call esi
test ebx, ebx
jl 0x3002ceaf
mov eax, dword [ebp - 0xc70]
cmp dword [ebp - 0x1b3c], eax
je 0x3002cdfa
cmp byte [edi + 0x1c], 0
je 0x3002ce89
test eax, eax
jne 0x3002ce89
push 0
lea eax, [ebp - 0x1b88]
push eax
lea eax, [ebp - 0x1b4c]
push eax
push dword [ebp - 0x1b38]
lea ecx, [ebp - 0x1ce0]
call fcn.3008c6cd
mov ebx, eax
test ebx, ebx
jge 0x3002ce37
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 0x3002ceaf
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.3008c2fd
push dword [edi + 0x1efc]
mov ebx, eax
call esi
jmp 0x3002ce8e
mov ebx, 0x8004022d
test ebx, ebx
jl 0x3002ceaf
or dword [ebp - 0xdec], 1
and dword [ebp - 0xc68], 0xfffffff7
push 0
lea ecx, [ebp - 0xe04]
call fcn.3003f106
jmp 0x3002cf05
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002ceda
je 0x3002cef4
cmp ebx, 0x80030004
jl 0x3002cef2
cmp ebx, 0x80030006
jle 0x3002cef4
cmp ebx, 0x80030008
je 0x3002cef4
cmp ebx, 0x80030013
jmp 0x3002cef0
cmp ebx, 0x80030070
je 0x3002cef4
cmp ebx, 0x80040211
je 0x3002cef4
cmp ebx, 0x8007000e
je 0x3002cef4
xor ebx, ebx
push dword [ebp - 0x1b30]
lea ecx, [ebp - 0x1ca0]
call fcn.3008b74a
test ebx, ebx
jl 0x3002cf39
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002cf39
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bab4
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xb
call fcn.300414b6
inc dword [ebp - 0x1b30]
test ebx, ebx
jge 0x3002cc2a
test ebx, ebx
mov edi, dword [ebp - 0x1b34]
mov dword [ebp - 0x1b30], 1
jl 0x3002dbe6
mov eax, dword [ebp - 0x1b30]
cmp eax, dword [ebp - 0x1d88]
ja 0x3002d23a
push edi
push eax
lea eax, [ebp - 0x1d90]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001bade
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0xf
call fcn.3008a311
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 0x3002d17c
mov eax, dword [ebp - 0x1bb8]
or eax, dword [ebp - 0x1bbc]
je 0x3002d174
lea eax, [ebp - 0x1b38]
push eax
push dword [ebp - 0x1bb8]
lea ecx, [edi + 0x1c68]
push dword [ebp - 0x1bbc]
call fcn.3008c442
mov ebx, eax
test ebx, ebx
jl 0x3002d17c
cmp dword [ebp - 0x1b38], 0xf4240
jbe 0x3002d021
mov ebx, 0x8004022d
test ebx, ebx
jl 0x3002d17c
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 0x3002d17c
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 0x3002d17c
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 0x3002d0af
cmp dword [ebp - 0x1b74], eax
je 0x3002d0af
mov ebx, 0x8003001e
push 0
add eax, esi
push eax
push esi
call fcn.3001bc86
push dword [edi + 0x1efc]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
test ebx, ebx
jl 0x3002d17c
cmp esi, dword [ebp - 0x1bb4]
jne 0x3002d16f
push 0
lea eax, [ebp - 0x1b88]
push eax
lea eax, [ebp - 0x1b4c]
push eax
push dword [ebp - 0x1b38]
lea ecx, [ebp - 0x1ce0]
call fcn.3008c6cd
mov ebx, eax
test ebx, ebx
jge 0x3002d119
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 0x3002d17c
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.3008c2fd
push dword [edi + 0x1efc]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x3002d174
mov ebx, 0x8004022d
test ebx, ebx
jl 0x3002d17c
push 0
jmp 0x3002d1d0
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002d1a7
je 0x3002d1c1
cmp ebx, 0x80030004
jl 0x3002d1bf
cmp ebx, 0x80030006
jle 0x3002d1c1
cmp ebx, 0x80030008
je 0x3002d1c1
cmp ebx, 0x80030013
jmp 0x3002d1bd
cmp ebx, 0x80030070
je 0x3002d1c1
cmp ebx, 0x80040211
je 0x3002d1c1
cmp ebx, 0x8007000e
je 0x3002d1c1
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.3008a471
test ebx, ebx
jl 0x3002d21d
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002d21d
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bab4
mov ebx, eax
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0xb
call fcn.3001bca1
inc dword [ebp - 0x1b30]
test ebx, ebx
jge 0x3002cf6e
test ebx, ebx
jl 0x3002dbe6
lea ecx, [ebp - 0x1ce0]
call fcn.3008c254
mov esi, dword [ebp - 0x1b58]
call fcn.3002b949
cmp byte [edi + 0x1c], 0
je 0x3002d3d8
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b40]
push eax
push 8
call fcn.3008523a
mov ebx, eax
test ebx, ebx
jl 0x3002d29b
push 0x300bdcd8
push 0x14
push 0x2000
push dword [ebp - 0x1b40]
lea ecx, [ebp - 0xe90]
call fcn.300883cb
mov ebx, eax
xor esi, esi
inc esi
test ebx, ebx
jl 0x3002dbe6
cmp esi, dword [ebp - 0x1c98]
ja 0x3002d3ae
push edi
push esi
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30042e23
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x10
call fcn.3008a311
mov ebx, eax
test ebx, ebx
jne 0x3002d30f
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.30089304
mov ebx, eax
test ebx, ebx
jge 0x3002d366
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002d33c
je 0x3002d356
cmp ebx, 0x80030004
jl 0x3002d354
cmp ebx, 0x80030006
jle 0x3002d356
cmp ebx, 0x80030008
je 0x3002d356
cmp ebx, 0x80030013
jmp 0x3002d352
cmp ebx, 0x80030070
je 0x3002d356
cmp ebx, 0x80040211
je 0x3002d356
cmp ebx, 0x8007000e
je 0x3002d356
xor ebx, ebx
push esi
lea ecx, [ebp - 0x1ca0]
call fcn.3008b74a
test ebx, ebx
jl 0x3002d396
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002d396
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bab4
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0xb
call fcn.300414b6
inc esi
test ebx, ebx
jge 0x3002d2a6
test ebx, ebx
jl 0x3002dbe6
lea ecx, [ebp - 0xe90]
call fcn.3008721c
mov esi, dword [ebp - 0x1b40]
call fcn.3002b949
mov eax, dword [ebp - 0x1b40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0xc5c]
call fcn.3002b778
lea eax, [ebp - 0x1b80]
push eax
push 6
lea ecx, [ebp - 0x1f04]
mov byte [ebp - 4], 0x11
call fcn.3008523a
mov ebx, eax
test ebx, ebx
jl 0x3002d420
push 0x300bdcbc
push 0x14
push 0x2000
push dword [ebp - 0x1b80]
lea ecx, [ebp - 0xf1c]
call fcn.300883cb
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x1b30], 1
jl 0x3002d576
mov eax, dword [ebp - 0x1b30]
cmp eax, dword [ebp - 0x1c98]
ja 0x3002d55c
push edi
push eax
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30042e23
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x12
call fcn.3008a311
mov ebx, eax
test ebx, ebx
jne 0x3002d4b3
mov eax, dword [ebp - 0x1b30]
mov dword [ebp - 0xc44], eax
lea eax, [ebp - 0x1c1c]
push eax
lea ecx, [ebp - 0xe04]
call fcn.3003effa
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.30089304
mov edi, dword [ebp - 0x1b34]
mov ebx, eax
test ebx, ebx
jge 0x3002d50f
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002d4e0
je 0x3002d4fa
cmp ebx, 0x80030004
jl 0x3002d4f8
cmp ebx, 0x80030006
jle 0x3002d4fa
cmp ebx, 0x80030008
je 0x3002d4fa
cmp ebx, 0x80030013
jmp 0x3002d4f6
cmp ebx, 0x80030070
je 0x3002d4fa
cmp ebx, 0x80040211
je 0x3002d4fa
cmp ebx, 0x8007000e
je 0x3002d4fa
xor ebx, ebx
push dword [ebp - 0x1b30]
lea ecx, [ebp - 0x1ca0]
call fcn.3008b74a
test ebx, ebx
jl 0x3002d53f
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002d53f
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bab4
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x11
call fcn.300414b6
inc dword [ebp - 0x1b30]
test ebx, ebx
jge 0x3002d432
test ebx, ebx
jl 0x3002d576
lea ecx, [ebp - 0xf1c]
call fcn.3008721c
mov esi, dword [ebp - 0x1b80]
call fcn.3002b949
lea ecx, [ebp - 0xc5c]
mov byte [ebp - 4], 0xb
call fcn.30087184
test ebx, ebx
jl 0x3002dbe6
lea eax, [ebp - 0x1b7c]
push eax
push 3
lea ecx, [ebp - 0x1f04]
call fcn.3008523a
mov ebx, eax
test ebx, ebx
jl 0x3002dbe6
push 0x300bd268
push 0x14
push 0x2000
push dword [ebp - 0x1b7c]
lea ecx, [ebp - 0xfa8]
call fcn.300883cb
mov ebx, eax
test ebx, ebx
jl 0x3002dbe6
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 0x3002d650
lea eax, [ebp - 0xe90]
mov dword [edi + 0x1eec], eax
lea ecx, [ebp - 0x14f4]
call fcn.3002b5d8
lea esi, [edi + 0x1c28]
mov ecx, esi
mov byte [ebp - 4], 0x13
call fcn.3008c254
mov ebx, eax
test ebx, ebx
jl 0x3002db9b
mov ecx, esi
call fcn.3008c6b0
mov ebx, eax
test ebx, ebx
jl 0x3002db9b
lea esi, [edi + 0x1c68]
mov ecx, esi
call fcn.3008c254
mov ebx, eax
test ebx, ebx
jl 0x3002db9b
mov ecx, esi
call fcn.3008c6b0
mov ebx, eax
test ebx, ebx
jl 0x3002db9b
push 1
push dword [ebp - 0x1b60]
lea ecx, [edi + 0x1c28]
call fcn.3008c221
mov ebx, eax
test ebx, ebx
jl 0x3002db9b
push 1
push dword [ebp - 0x1b58]
mov ecx, esi
call fcn.3008c221
mov ebx, eax
test ebx, ebx
jl 0x3002db9b
xor esi, esi
inc esi
cmp esi, dword [ebp - 0x1c98]
ja 0x3002d834
push edi
push esi
lea eax, [ebp - 0x1ca0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30042e23
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x14
call fcn.3008a311
mov ebx, eax
test ebx, ebx
jne 0x3002d7ea
lea eax, [ebp - 0x1b8c]
push eax
lea ecx, [ebp - 0xe04]
call fcn.30041fa0
mov ebx, eax
test ebx, ebx
jl 0x3002d797
mov eax, dword [ebp - 0x1b8c]
test eax, eax
je 0x3002d793
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x3002d746
sub eax, edx
sar eax, 1
je 0x3002d793
push dword [ebp - 0xdbc]
mov eax, dword [ebp - 0xdfc]
push dword [ebp - 0x1b8c]
lea ecx, [ebp - 0x14f4]
mov dword [ebp - 0x10d8], eax
call fcn.30080130
mov ebx, eax
test ebx, ebx
jl 0x3002d797
lea eax, [ebp - 0x14f4]
push eax
lea ecx, [ebp - 0xfa8]
call fcn.30089304
mov ebx, eax
test ebx, ebx
jge 0x3002d7ec
mov eax, 0x8003001d
cmp ebx, eax
jg 0x3002d7c2
je 0x3002d7dc
cmp ebx, 0x80030004
jl 0x3002d7da
cmp ebx, 0x80030006
jle 0x3002d7dc
cmp ebx, 0x80030008
je 0x3002d7dc
cmp ebx, 0x80030013
jmp 0x3002d7d8
cmp ebx, 0x80030070
je 0x3002d7dc
cmp ebx, 0x80040211
je 0x3002d7dc
cmp ebx, 0x8007000e
je 0x3002d7dc
xor ebx, ebx
push esi
lea ecx, [ebp - 0x1ca0]
call fcn.3008b74a
test ebx, ebx
jl 0x3002d81c
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002d81c
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bab4
mov ebx, eax
lea ecx, [ebp - 0xe04]
mov byte [ebp - 4], 0x13
call fcn.300414b6
inc esi
test ebx, ebx
jge 0x3002d6e8
test ebx, ebx
jl 0x3002d84e
lea ecx, [ebp - 0xfa8]
call fcn.3008721c
mov esi, dword [ebp - 0x1b7c]
call fcn.3002b949
lea ecx, [ebp - 0x1b28]
call fcn.3001ca46
xor esi, esi
lea ecx, [ebp - 0xc5c]
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x1b3c], esi
mov dword [ebp - 0x1b84], esi
call fcn.300440a8
cmp ebx, esi
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x1b68], esi
jl 0x3002d8bd
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b78]
push eax
push 5
call fcn.3008523a
mov ebx, eax
cmp ebx, esi
jl 0x3002d8bd
push 0x300bd688
push 0x14
push 0x2000
push dword [ebp - 0x1b78]
lea ecx, [ebp - 0x1034]
call fcn.300883cb
mov ebx, eax
cmp ebx, esi
mov dword [ebp - 0x1b30], 2
jl 0x3002db36
mov esi, dword [sym.imp.MSO.dll_Ordinal_926]
mov eax, dword [ebp - 0x1b30]
cmp eax, dword [ebp - 0x1d88]
ja 0x3002db1c
push edi
push eax
lea eax, [ebp - 0x1d90]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001bade
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0x17
call fcn.3008a311
mov ebx, eax
test ebx, ebx
jne 0x3002dacd
mov eax, dword [ebp - 0x1bb8]
or eax, dword [ebp - 0x1bbc]
jne 0x3002d9ab
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.3001c6d2
mov ebx, eax
test ebx, ebx
jl 0x3002d9e8
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.3001c75b
mov ebx, eax
test ebx, ebx
jl 0x3002d9e8
push 0
lea ecx, [ebp - 0x1bf4]
call fcn.3008a471
mov ebx, eax
test ebx, ebx
jl 0x3002d9e8
lea eax, [ebp - 0x1b84]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001c632
mov ebx, eax
test ebx, ebx
jl 0x3002d9e8
lea eax, [ebp - 0x1b68]
push eax
lea ecx, [ebp - 0x1bf4]
call fcn.3001c65a
mov ebx, eax
test ebx, ebx
jl 0x3002d9e8
cmp dword [ebp - 0x1b84], 0
je 0x3002da7f
cmp dword [ebp - 0x1b68], 0
je 0x3002da7f
test ebx, ebx
jl 0x3002da77
push 0
push 0
push dword [ebp - 0x1b84]
lea ecx, [ebp - 0x1dac]
call fcn.300443fc
push eax
lea ecx, [ebp - 0xc5c]
mov byte [ebp - 4], 0x18
call fcn.3004432d
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 0x3002da77
push dword [ebp - 0x1bc8]
lea ecx, [ebp - 0xc5c]
push dword [ebp - 0x1b68]
push dword [ebp - 0x1b30]
call fcn.300443ea
push eax
lea ecx, [ebp - 0x1b28]
call fcn.3001c8f6
mov ebx, eax
test ebx, ebx
jl 0x3002da77
lea eax, [ebp - 0x1b28]
push eax
lea ecx, [ebp - 0x1034]
call fcn.30089304
mov ebx, eax
cmp ebx, 0x80040202
jne 0x3002da92
xor eax, eax
mov dword [ebp - 0x1bb8], eax
mov dword [ebp - 0x1bbc], eax
jmp 0x3002d91a
test ebx, ebx
jl 0x3002daff
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.3008a471
test ebx, ebx
jl 0x3002daff
inc dword [ebp - 0x1b2c]
mov eax, dword [ebp - 0x1b2c]
push 0xa
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x3002daff
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
push dword [ebp - 0x1b44]
call fcn.3002bab4
mov ebx, eax
lea ecx, [ebp - 0x1bf4]
mov byte [ebp - 4], 0x16
call fcn.3001bca1
inc dword [ebp - 0x1b30]
test ebx, ebx
jge 0x3002d8d5
test ebx, ebx
jl 0x3002db36
lea ecx, [ebp - 0x1034]
call fcn.3008721c
mov esi, dword [ebp - 0x1b78]
call fcn.3002b949
lea ebx, [edi + 0x1c28]
mov ecx, ebx
call fcn.3008c6b0
lea esi, [edi + 0x1484]
push dword [esi]
mov ecx, ebx
push dword [ebp - 0x1b94]
call fcn.3008c221
mov ebx, eax
test ebx, ebx
jl 0x3002db7c
lea ebx, [edi + 0x1c68]
mov ecx, ebx
call fcn.3008c6b0
push dword [esi]
mov ecx, ebx
push dword [ebp - 0x1b90]
call fcn.3008c221
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.30087184
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.30087184
mov eax, dword [ebp - 0x1b80]
test eax, eax
je 0x3002dbf6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1b7c]
test eax, eax
je 0x3002dc06
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1b78]
test eax, eax
je 0x3002dc16
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test ebx, ebx
jl 0x3002dc67
mov ecx, dword [ebp - 0x1b54]
lea eax, [ebp - 0x1b40]
push eax
push 4
call fcn.3008523a
mov ebx, eax
test ebx, ebx
jl 0x3002dc67
push dword [ebp - 0x1b58]
lea eax, [ebp - 0x1ce0]
push eax
push 2
push 0x2000
push dword [ebp - 0x1b40]
lea ecx, [ebp - 0x10d4]
call fcn.30031731
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 0x3002dc77
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1b58]
test eax, eax
je 0x3002dc87
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test ebx, ebx
jl 0x3002ddab
lea ecx, [ebp - 0x1ca0]
call fcn.3008b1ac
lea ecx, [ebp - 0x1ca0]
call fcn.30089fc7
lea ecx, [ebp - 0x1d90]
call fcn.3008b1ac
lea ecx, [ebp - 0x1d90]
call fcn.30089fc7
lea ecx, [ebp - 0x1d20]
call fcn.3008c6b0
lea ecx, [ebp - 0x1ce0]
call fcn.3008c6b0
lea ecx, [ebp - 0xf1c]
call fcn.30087224
cmp byte [edi + 0x1c], 0
je 0x3002dced
lea ecx, [ebp - 0xe90]
call fcn.30087224
lea ecx, [ebp - 0xfa8]
call fcn.30087224
lea ecx, [ebp - 0x1034]
call fcn.30087224
lea ecx, [ebp - 0x10d4]
call fcn.3008721c
lea ecx, [ebp - 0x10d4]
call fcn.300317a1
push 0
lea ebx, [edi + 0x1490]
push dword [ebx + 4]
lea ecx, [ebp - 0x1f04]
push dword [ebx]
push 0xffffffffffffffff
call fcn.30083977
push 0
push dword [ebx + 4]
lea ecx, [ebp - 0x205c]
push dword [ebx]
push 0xffffffffffffffff
call fcn.30083977
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.3005ca9f
mov ebx, eax
test ebx, ebx
jl 0x3002dd99
cmp byte [edi + 0x1c], 0
je 0x3002dd99
push dword [ebp - 0x1b6c]
mov ecx, edi
call fcn.3005ca9f
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 0x3002ddc2
push dword [ebp - 0x1b64]
call esi
cmp dword [ebp - 0x1b6c], 0xffffffff
je 0x3002ddd3
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 0x3002e013
mov al, byte [edi + 0x1c]
mov ecx, edi
mov byte [ebp - 0x1b59], al
call fcn.3005b892
mov ebx, eax
test ebx, ebx
mov al, byte [ebp - 0x1b59]
mov byte [edi + 0x1c], al
jl 0x3002dfe7
mov eax, dword [ebp - 0x1b34]
add eax, 0x1e
mov dword [ebp - 0x1b3c], eax
push eax
mov eax, 0x104
lea edi, [ebp - 0x420]
call fcn.3002be4d
test al, al
je 0x3002dfe7
mov eax, edi
push eax
push dword [ebp - 0x1b3c]
call esi
test eax, eax
jne 0x3002df20
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jle 0x3002df8a
call esi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
test ebx, ebx
jl 0x3002dfec
mov eax, dword [ebp - 0x1b34]
cmp byte [eax + 0x1c], 0
je 0x3002dfec
add eax, 0x226
push eax
mov eax, 0x104
lea edi, [ebp - 0x218]
call fcn.3002be4d
test al, al
je 0x3002dfec
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 0x3002dfc9
push dword [ebp - 0x1c10]
lea eax, [ebp - 0x218]
push eax
mov dword [ebp - 0x1b70], 1
call edi
test eax, eax
jne 0x3002dfec
call esi
test eax, eax
jg 0x3002df93
call esi
mov ebx, eax
jmp 0x3002dfa3
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 0x3002de95
call esi
test eax, eax
jg 0x3002df53
call esi
mov ebx, eax
jmp 0x3002df63
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 0x3002de7b
and dword [ebp - 0x1b70], 0
jmp 0x3002de95
call esi
mov ebx, eax
jmp 0x3002de95
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 0x3002dfc9
and dword [ebp - 0x1b70], 0
jmp 0x3002dfec
call esi
test eax, eax
jg 0x3002dfd5
call esi
mov ebx, eax
jmp 0x3002dfec
call esi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
jmp 0x3002dfec
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.3005e1b6
test eax, eax
jge 0x3002e031
mov ebx, eax
jmp 0x3002e031
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x830]
push eax
call esi
cmp byte [edi + 0x1c], 0
je 0x3002e031
lea eax, [ebp - 0xc40]
push eax
call esi
test ebx, ebx
mov edi, dword [ebp - 0x1b34]
jl 0x3002e058
push dword [ebp - 0x1b44]
mov ecx, edi
push 0
push dword [ebp - 0x1b2c]
push dword [ebp - 0x1b50]
call fcn.3002c0f1
mov ebx, eax
test ebx, ebx
mov dword [edi + 0x2158], 1
jl 0x3002e09f
mov ecx, edi
call fcn.3005daeb
mov esi, dword [edi + 0x1ef8]
call fcn.3002b949
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x420]
push eax
call esi
cmp byte [edi + 0x1c], 0
je 0x3002e146
lea eax, [ebp - 0x218]
push eax
call esi
jmp 0x3002e146
cmp dword [ebp - 0x1b70], 0
je 0x3002e146
and dword [ebp - 0x1b3c], 0
mov ecx, edi
call fcn.3005b892
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [edi + 0x1e]
push eax
call esi
test eax, eax
je 0x3002e0df
lea eax, [edi + 0x1e]
push eax
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x3002e0e9
mov dword [ebp - 0x1b3c], 0x80004005
cmp byte [edi + 0x1c], 0
je 0x3002e11e
lea eax, [edi + 0x226]
push eax
call esi
test eax, eax
je 0x3002e114
lea eax, [edi + 0x226]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x3002e11e
mov dword [ebp - 0x1b3c], 0x80004005
cmp dword [ebp - 0x1b3c], 0
jl 0x3002e146
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.3005e1b6
push ebx
push dword [ebp - 0x1b44]
call fcn.3002bb0b
cmp ebx, 0x80004004
jne 0x3002e15f
mov ebx, 0x80040e4e
lea ecx, [ebp - 0x1c34]
mov byte [ebp - 4], 0xa
call fcn.30087184
lea ecx, [ebp - 0x10d4]
mov byte [ebp - 4], 9
call fcn.3003165c
lea ecx, [ebp - 0x1034]
mov byte [ebp - 4], 8
call fcn.30087424
lea ecx, [ebp - 0xe90]
mov byte [ebp - 4], 7
call fcn.30087424
lea ecx, [ebp - 0xfa8]
mov byte [ebp - 4], 6
call fcn.30087424
lea ecx, [ebp - 0xf1c]
mov byte [ebp - 4], 5
call fcn.30087424
lea ecx, [ebp - 0x1ce0]
mov byte [ebp - 4], 4
call fcn.3008c178
lea ecx, [ebp - 0x1d20]
mov byte [ebp - 4], 3
call fcn.3008c178
lea ecx, [ebp - 0x1d90]
mov byte [ebp - 4], 2
call fcn.3001c27c
lea ecx, [ebp - 0x1ca0]
mov byte [ebp - 4], 1
call fcn.3002bb73
lea ecx, [ebp - 0x205c]
mov byte [ebp - 4], 0
call fcn.30082746
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1f04]
call fcn.30082746
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.30085f59
leave
ret 4