Function at 0x10077b51
Capabilities:
Clear file content
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x108
push ebx
push esi
push edi
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0x80]
xor ebx, ebx
push eax
mov dword [ebp + 0x24], ecx
mov dword [ebp - 0x80], ebx
call fcn.1004e44a
push 1
push 2
push str.SeBackupPrivilege
call fcn.10013699
push 0x10
push 2
push str.SeRestorePrivilege
call fcn.10013699
mov edx, dword [ebp + 0x78]
add esp, 0x20
mov byte [ebp + 0x6f], bl
mov byte [ebp + 0x57], bl
mov byte [ebp + 0x55], bl
mov byte [ebp - 0x2a], bl
mov byte [ebp + 0x6d], bl
mov byte [ebp - 5], bl
mov byte [ebp + 0x6e], bl
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x7c], ebx
xor ecx, ecx
jmp 0x10077bf0
mov eax, ecx
call fcn.10002df6
test al, al
jne 0x10077bf8
cmp cx, 0x2a
jne 0x10077bd3
mov al, byte [edx]
mov byte [ebp + 0x6f], al
jmp 0x10077beb
cmp cx, 0x2e
jne 0x10077be0
mov al, byte [edx]
mov byte [ebp + 0x57], al
jmp 0x10077beb
cmp cx, 0x23
jne 0x10077beb
mov al, byte [edx]
mov byte [ebp + 0x55], al
inc edx
inc edx
mov dword [ebp + 0x78], edx
mov cx, word [edx]
cmp cx, bx
jne 0x10077bbb
lea eax, [ebp + 0x78]
push eax
call fcn.1003f9c4
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x40], esi
call fcn.10046123
cmp word [esi], 0x2d
jne 0x10077c60
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x10077c45
mov eax, ecx
call fcn.10002df6
test al, al
jne 0x10077c45
cmp cx, 0x2c
je 0x10077c45
lea eax, [ebp - 0x40]
push eax
call fcn.10008e60
mov esi, dword [ebp - 0x40]
cmp word [esi], 0x2d
pop ecx
je 0x10077c16
cmp esi, dword [ebp + 0x78]
je 0x10077c60
mov ecx, dword [ebp + 0x24]
push 1
push ebx
lea eax, [ebp - 0x70]
push eax
mov word [esi - 2], bx
push dword [ebp + 0x78]
call fcn.10058f7c
mov eax, dword [ebp - 0x70]
push 1
lea ecx, [ebp]
mov dword [ebp + 0x78], eax
call fcn.10046141
or edi, 0xffffffff
mov eax, 0x200
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], 0x7fffffff
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x30], ebx
mov byte [ebp - 0x29], bl
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ebx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x2b], bl
mov byte [ebp + 0x23], bl
mov byte [ebp + 0x22], bl
mov dword [ebp + 0x40], ebx
jmp 0x10077e8c
push 3
lea eax, [ebp + 0x78]
push eax
push 0x100d1dec
call fcn.10048195
add esp, 0xc
test al, al
je 0x10077ce3
mov byte [ebp - 0x2a], 1
jmp 0x10077e8c
push 4
lea eax, [ebp + 0x78]
push eax
push 0x100d1de4
call fcn.10048195
add esp, 0xc
test al, al
je 0x10077d06
mov dword [ebp - 0x24], 0x80000000
jmp 0x10077e8c
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.10048248
add esp, 0xc
test al, al
jne 0x10077e9e
push 3
lea eax, [ebp + 0x78]
push eax
push 0x100d1d04
call fcn.10048248
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x10077dda
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp + 0xc], esi
call fcn.10008e60
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp - 0xc], ebx
jne 0x10077d8e
inc esi
inc esi
lea eax, [ebp - 4]
push eax
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x40], esi
mov dword [ebp - 4], esi
call fcn.10005b74
mov eax, dword [ebp - 4]
cmp word [eax], bx
pop ecx
je 0x10077d7b
mov word [eax], bx
mov ecx, dword [ebp + 0x24]
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x40]
call fcn.1004e8ba
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.10042530
mov eax, dword [ebp - 0x6c]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x10077dca
cmp eax, ebx
je 0x10077dca
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov dword [ebp + 0x40], ebx
call fcn.1004000d
test eax, eax
pop ecx
pop ecx
je 0x10077dca
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x10077dca
mov dword [ebp + 0x3c], esi
lea ecx, [ebp - 0xc]
call fcn.1003f96c
mov esi, dword [ebp - 0x40]
jmp 0x10077e8c
push 3
push eax
push 0x100d1de0
call fcn.10048195
add esp, 0xc
test al, al
je 0x10077df7
mov byte [ebp - 5], 1
jmp 0x10077e8c
push 2
lea eax, [ebp + 0x78]
push eax
push 0x100d1ddc
call fcn.10048195
add esp, 0xc
test al, al
je 0x10077e14
mov byte [ebp + 0x6d], 1
jmp 0x10077e8c
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.10048195
add esp, 0xc
test al, al
je 0x10077e31
mov byte [ebp + 0x6e], 1
jmp 0x10077e8c
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.10048195
add esp, 0xc
test al, al
je 0x10077e4e
mov byte [ebp + 0x22], 1
jmp 0x10077e8c
push 3
lea eax, [ebp + 0x78]
push eax
push 0x100d1dd0
call fcn.10048195
add esp, 0xc
test al, al
jne 0x10077ee3
push 5
lea eax, [ebp + 0x78]
push eax
push 0x100cbca8
call fcn.10048195
add esp, 0xc
test al, al
je 0x10077e82
mov byte [ebp + 0x5e], 1
jmp 0x10077e8c
lea eax, [ebp + 0x78]
push eax
call fcn.10008e60
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x10077cc3
jmp 0x1007821c
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.10008e60
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.10042530
add esp, 0xc
cmp dword [ebp - 0x48], edi
je 0x100787c4
cmp dword [ebp - 0x48], ebx
je 0x100787c4
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x100787c4
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x23], 1
mov byte [ebp + 0x6f], 1
jne 0x1007821c
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x100781e9
mov eax, ecx
call fcn.10002df6
test al, al
jne 0x100781e9
cmp cx, 0x2c
je 0x100781e9
mov eax, dword [ebp + 0x78]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.10008e60
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.10040df5
add esp, 0x10
test al, al
je 0x10077f7e
add dword [ebp + 0x78], 8
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.1005381f
test eax, eax
pop ecx
pop ecx
jle 0x100781d9
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
jmp 0x100781d9
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.10040df5
add esp, 0xc
test al, al
je 0x10077fbb
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.1005381f
test eax, eax
pop ecx
pop ecx
jle 0x100781d9
mov eax, dword [ebp + 0x28]
cdq
jmp 0x10077f73
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.10040df5
add esp, 0xc
test al, al
je 0x10078001
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.1005381f
test eax, eax
pop ecx
pop ecx
jle 0x100781d9
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x100781d9
push 7
push dword [ebp + 0x78]
push str._count
call fcn.10040df5
add esp, 0xc
test al, al
je 0x10078049
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.1005381f
test eax, eax
pop ecx
pop ecx
jle 0x100781d9
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x48], eax
jmp 0x100781d9
push 5
push dword [ebp + 0x78]
push str._len
call fcn.10040df5
add esp, 0xc
test al, al
je 0x10078091
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.1005381f
test eax, eax
pop ecx
pop ecx
jle 0x100781d9
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x50], eax
jmp 0x100781d9
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.10040df5
add esp, 0xc
test al, al
je 0x100780ce
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.10040df5
add esp, 0xc
test al, al
je 0x100781d9
mov byte [ebp - 0x2b], 1
jmp 0x100781d9
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1007811c
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.1005381f
test eax, eax
pop ecx
pop ecx
jle 0x100781d9
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x58], eax
jmp 0x100781d9
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.10040df5
add esp, 0xc
test al, al
je 0x10078167
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.1005381f
test eax, eax
pop ecx
pop ecx
jle 0x100781d9
mov eax, dword [ebp + 0x28]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 8], eax
jmp 0x100781d9
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.10048195
add esp, 0xc
test al, al
je 0x10078184
mov byte [ebp + 0x6e], 1
jmp 0x100781d9
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.10048195
add esp, 0xc
test al, al
je 0x100781a1
mov byte [ebp + 0x22], 1
jmp 0x100781d9
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.10048195
add esp, 0xc
test al, al
je 0x100781be
mov byte [ebp + 0x22], 0x10
jmp 0x100781d9
push 3
lea eax, [ebp + 0x78]
push eax
push 0x100d1de0
call fcn.10048195
add esp, 0xc
test al, al
je 0x100781d9
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x10077ef8
cmp dword [ebp + 8], ebx
jg 0x1007821c
jl 0x100781f5
cmp dword [ebp + 4], ebx
jae 0x1007821c
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.100b4200
cmp edx, ebx
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
jg 0x1007821c
jl 0x10078216
cmp eax, ebx
jae 0x1007821c
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.10048195
add esp, 0xc
test al, al
je 0x10078237
mov byte [ebp + 0x22], 1
mov ecx, dword [ebp + 0x24]
push ebx
push 0x2c
lea eax, [ebp]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], esi
call fcn.1003aaa0
cmp word [eax], 0x2c
jne 0x100787bf
mov eax, dword [ebp]
mov ax, word [eax]
cmp ax, bx
je 0x100787bf
cmp ax, 0x26
jne 0x10078270
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x10078278
mov byte [ebp + 0x6f], bl
mov ecx, dword [ebp + 0x24]
push 1
push ebx
lea eax, [ebp - 0x70]
push eax
push dword [ebp + 0x78]
call fcn.10058f7c
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.1005381f
cmp dword [ebp + 0x14], ebx
pop ecx
pop ecx
jg 0x100782b3
jl 0x100787bf
cmp dword [ebp + 0x10], ebx
jb 0x100787bf
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x23
mov dword [ebp + 0x60], 0xfffffffc
mov dword [ebp + 0x64], edi
mov byte [ebp - 0x2c], bl
jne 0x100782f1
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.1003f9c4
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
sete byte [ebp - 0x2c]
call fcn.1005381f
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.1003ff40
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x1007830d
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x10078333
jg 0x1007831b
cmp dword [ebp + 0x4c], ebx
jb 0x10078333
cmp dword [ebp + 0x64], eax
jl 0x10078333
jg 0x1007832a
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x4c]
jbe 0x10078333
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x78]
push eax
call fcn.1003f9c4
push dword [ebp + 0x78]
call fcn.10010e93
mov esi, dword [ebp + 0x78]
push esi
push str.zero
mov dword [ebp - 4], esi
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call fcn.10040e34
add esp, 0x10
cmp al, bl
mov byte [ebp + 0x21], al
jne 0x10078399
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 4]
push eax
call fcn.10049610
test eax, eax
pop ecx
pop ecx
je 0x10078399
mov eax, dword [ebp - 4]
mov ax, word [eax]
cmp ax, bx
je 0x10078389
cmp ax, 0x2c
jne 0x10078399
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x2c]
mov byte [ebp + 0x21], 2
mov dword [ebp - 0x68], eax
cmp word [esi], bx
mov edi, esi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], esi
jne 0x100783ae
xor ebx, ebx
inc ebx
jmp 0x100787c4
lea eax, [ebp - 4]
push 1
push eax
mov dword [ebp - 4], esi
call fcn.1004e376
pop ecx
pop ecx
lea ecx, [ebp - 0x54]
mov esi, eax
call fcn.10045faf
cmp byte [ebp + 0x55], bl
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov byte [ebp + 0x5f], bl
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
je 0x10078531
mov esi, 0x100e3d7c
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0xc]
call fcn.10046123
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.10010cdd
cmp eax, ebx
mov dword [ebp + 0x2c], eax
jne 0x1007841c
lea ecx, [ebp + 0xc]
call fcn.1003f96c
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100787b7
mov edx, dword [ebp + 0x64]
cmp edx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3c], eax
jl 0x10078447
mov esi, dword [ebp + 0x60]
jg 0x10078432
cmp esi, ebx
jbe 0x10078447
mov ecx, esi
add ecx, dword [ebp + 4]
mov eax, edx
adc eax, dword [ebp + 8]
cmp eax, ebx
jl 0x1007846c
jg 0x10078447
cmp ecx, dword [ebp - 0x3c]
jbe 0x1007846c
mov esi, dword [ebp - 0x3c]
sub esi, dword [ebp + 4]
mov edx, ebx
sbb edx, dword [ebp + 8]
mov dword [ebp + 0x60], esi
cmp edx, ebx
mov dword [ebp + 0x64], edx
jg 0x1007846c
jl 0x10078462
cmp esi, ebx
ja 0x1007846c
xor esi, esi
xor edx, edx
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x64], edx
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x1007848e
jg 0x1007847a
cmp dword [ebp + 0x4c], ebx
jb 0x1007848e
cmp eax, edx
jg 0x1007848e
jl 0x10078485
cmp dword [ebp + 0x4c], esi
jae 0x1007848e
mov esi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x64], eax
lea eax, [esi + 0x200000]
push eax
lea ecx, [ebp - 0x54]
call fcn.10045ff1
mov edi, dword [ebp - 0x54]
cmp edi, ebx
jne 0x100784bc
lea ecx, [ebp + 0xc]
call fcn.1003f96c
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10079634
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax + 4]
add edi, 0x100000
and edi, 0xfff00000
cmp dword [ebp + 8], ebx
mov dword [ebp - 0xc], edi
jl 0x100784e9
jg 0x100784e0
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x3c]
jbe 0x100784e9
mov eax, dword [ebp - 0x3c]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
add ecx, dword [ebp + 4]
mov eax, esi
cdq
cmp edx, ebx
mov dword [ebp - 0x50], esi
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jl 0x10078511
jg 0x10078502
cmp eax, ebx
jbe 0x10078511
cmp edi, ecx
je 0x10078511
push esi
push ecx
push edi
call fcn.100144b5
add esp, 0xc
lea ecx, [ebp + 0xc]
mov byte [ebp + 0x5f], 1
mov byte [ebp - 0x29], 1
call fcn.1003f96c
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1007870c
cmp esi, ebx
je 0x1007870c
lea eax, [esi + 2]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x88], 0x20
cmp word [eax], 0x2e
mov byte [ebp - 0x29], 2
mov byte [ebp + 0x5f], 2
jne 0x1007856c
inc eax
inc eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x88], 0x40
push 0x100c7cf8
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.100578fe
mov cx, word [esi]
mov dword [ebp - 0x60], eax
mov eax, dword [0x100e2fc0]
mov word [ebp + 0x2c], cx
mov ecx, dword [ebp - 4]
mov word [esi], bx
mov dx, word [ecx]
add esp, 0xc
cmp dx, 0x2e
mov dword [ebp + 0xc], ebx
jne 0x100785b2
cmp word [ecx + 2], bx
jne 0x100785b2
mov eax, dword [0x100e2c88]
jmp 0x100785c4
cmp dx, bx
je 0x100785c4
push 2
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp + 0xc], eax
cmp eax, ebx
mov cx, word [ebp + 0x2c]
mov word [esi], cx
je 0x100785eb
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push dword [ebp - 0x60]
push dword [ebp + 0x30]
push eax
call fcn.100155e3
add esp, 0x14
mov edi, eax
cmp dword [ebp + 0xc], ebx
je 0x100785f9
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp edi, ebx
je 0x10079634
cmp dword [ebp + 0x64], ebx
mov eax, dword [ebp - 0x50]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
jl 0x10078633
jg 0x10078617
cmp dword [ebp + 0x60], ebx
jbe 0x10078633
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x64]
mov ecx, edi
add ecx, dword [ebp + 4]
mov eax, esi
adc eax, dword [ebp + 8]
cmp eax, dword [ebp - 0x14]
jl 0x10078659
jg 0x10078633
cmp ecx, dword [ebp - 0x18]
jbe 0x10078659
mov edi, dword [ebp - 0x18]
sub edi, dword [ebp + 4]
mov esi, dword [ebp - 0x14]
sbb esi, dword [ebp + 8]
mov dword [ebp + 0x60], edi
cmp esi, ebx
mov dword [ebp + 0x64], esi
jg 0x10078659
jl 0x1007864f
cmp edi, ebx
ja 0x10078659
xor edi, edi
xor esi, esi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], esi
mov eax, dword [ebp - 0x50]
add eax, 0x200000
push eax
lea ecx, [ebp - 0x54]
call fcn.10045ff1
mov eax, dword [ebp - 0x54]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x10079634
mov ecx, dword [ebp - 0x18]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.100b40f0
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp dword [ebp + 8], eax
jl 0x100786aa
jg 0x1007869e
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x100786aa
mov eax, dword [ebp - 0x18]
mov dword [ebp + 4], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 4]
add dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x100786d2
jg 0x100786be
cmp dword [ebp + 0x4c], ebx
jb 0x100786d2
cmp eax, esi
jg 0x100786d2
jl 0x100786c9
cmp dword [ebp + 0x4c], edi
jae 0x100786d2
mov edi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], eax
mov eax, edi
mov dword [ebp - 0x50], edi
mov edi, dword [ebp + 0x30]
cdq
add edi, 0x100000
and edi, 0xfff00000
cmp edx, ebx
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0xc], edi
jl 0x1007870c
jg 0x100786fa
cmp eax, ebx
jbe 0x1007870c
cmp edi, dword [ebp + 0x30]
je 0x1007870c
push eax
push dword [ebp + 0x30]
push edi
call fcn.100144b5
add esp, 0xc
cmp byte [ebp - 5], bl
mov esi, dword [ebp + 0x3c]
mov byte [ebp + 0x55], bl
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x68], esi
je 0x10078731
push 0x40
push 2
push str.SeManageVolumePrivilege
call fcn.10013699
add esp, 0xc
cmp esi, ebx
mov eax, 0x200
mov dword [ebp - 0x20], eax
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov byte [ebp + 0x56], 1
je 0x10078753
mov byte [ebp + 0x56], bl
cmp byte [ebp + 0x23], bl
je 0x10078768
cmp byte [ebp - 0x2b], bl
sete byte [ebp + 0x55]
cmp byte [ebp + 0x5f], bl
jne 0x10078768
mov byte [ebp + 0x23], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x10078873
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.10046123
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp]
call fcn.10010cdd
cmp eax, ebx
jne 0x100787f0
lea ecx, [ebp + 0x40]
call fcn.1003f96c
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x58]
call fcn.10002d56
lea ecx, [ebp - 0x54]
call fcn.1003f96c
mov ebx, 0x80070057
lea ecx, [ebp]
call fcn.1003f96c
lea ecx, [ebp - 0x70]
call fcn.1003f96c
lea ecx, [ebp - 0x7c]
call fcn.10002d56
lea ecx, [ebp - 0x80]
call fcn.1003f96c
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x70
leave
ret 8
mov edx, dword [eax + 4]
mov ecx, dword [eax + 0x10]
xor eax, eax
cmp eax, ebx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], eax
jg 0x1007880b
jl 0x1007879c
cmp ecx, ebx
jbe 0x1007879c
cmp byte [ebp + 0x5f], bl
je 0x1007885b
mov esi, dword [ebp + 0x10]
sub ecx, esi
sbb eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x64]
jl 0x1007882a
jg 0x10078824
cmp ecx, dword [ebp + 0x60]
jbe 0x1007882a
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x10078843
jg 0x10078834
cmp ecx, ebx
jbe 0x10078843
push dword [ebp + 0x18]
add esi, edx
push edi
push esi
call fcn.100144b5
add esp, 0xc
lea ecx, [ebp + 0x40]
call fcn.1003f96c
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10079af7
lea ecx, [ebp + 0x40]
call fcn.1003f96c
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100789d6
cmp byte [ebp + 0x5e], bl
je 0x1007887d
mov dword [ebp - 0x1c], ebx
jmp 0x1007889a
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp]
push eax
call fcn.1004d921
movsx eax, al
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jl 0x100787af
cmp byte [ebp + 0x6f], bl
mov ecx, dword [ebp]
jne 0x100788e6
cmp dword [ebp - 0x1c], ebx
jne 0x100788de
cmp word [ecx], 0x5c
jne 0x100788de
cmp word [ecx + 2], 0x5c
jne 0x100788de
mov ax, word [ecx + 4]
cmp ax, 0x3f
je 0x100788c4
cmp ax, 0x2e
jne 0x100788de
cmp word [ecx + 6], 0x5c
jne 0x100788de
cmp ax, 0x3f
jne 0x100788e6
cmp word [ecx + 8], ax
jne 0x100788e6
cmp word [ecx + 0xa], 0x3a
jne 0x100788e6
mov edi, dword [ebp - 0x24]
mov byte [ebp + 0x5e], bl
jmp 0x10078922
cmp byte [ebp + 0x6f], bl
mov byte [ebp + 0x5e], 1
jne 0x10078900
push ebx
push ecx
call fcn.100b38d0
test eax, eax
pop ecx
pop ecx
je 0x10078900
mov byte [ebp + 0x6f], 0x20
cmp dword [ebp + 0x3c], ebx
mov edi, dword [ebp - 0x24]
jne 0x10078946
push ebx
push ebx
push 4
push ebx
push 7
mov eax, edi
or eax, esi
push eax
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x10078941
push ebx
push ebx
push 3
push ebx
push 3
mov eax, edi
or eax, esi
push eax
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x5e], bl
je 0x10078973
cmp byte [ebp + 0x23], bl
je 0x10078973
cmp dword [ebp - 0x1c], ebx
jg 0x10078973
cmp dword [ebp + 0x68], ebx
jne 0x10078994
push ebx
push 0x2000000
push 4
push ebx
push 3
mov eax, edi
or eax, esi
push eax
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x10078994
push ebx
push 0x2000000
push 3
push ebx
push 3
or edi, esi
push edi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x40], ebx
je 0x100789b2
cmp dword [ebp + 0x58], ebx
je 0x100789b2
push dword [ebp + 0x40]
push dword [ebp + 0x58]
push dword [ebp + 0x24]
call fcn.100104aa
add esp, 0xc
mov dword [ebp + 0x58], ebx
cmp dword [ebp - 0x1c], ebx
je 0x100789d6
cmp dword [ebp + 0x68], ebx
je 0x100789d6
mov edi, 0x200
push edi
push dword [ebp + 0x68]
call fcn.1004342a
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
jge 0x100789d6
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
and eax, dword [ebp - 0x20]
cmp byte [ebp + 0x23], 2
mov dword [ebp + 0x2c], eax
jne 0x100795e4
cmp dword [ebp + 0x38], ebx
jl 0x100787af
mov edi, dword [ebp + 0x34]
jg 0x10078a03
cmp edi, ebx
jbe 0x100787af
cmp dword [ebp - 0x30], ebx
jl 0x100787af
jg 0x10078a17
cmp dword [ebp - 0x34], ebx
jbe 0x100787af
cmp dword [ebp + 0x50], ebx
jl 0x10078a46
jg 0x10078a23
cmp dword [ebp + 0x4c], ebx
jb 0x10078a46
push dword [ebp + 0x38]
mov ecx, dword [ebp + 0x38]
mov eax, edi
add eax, dword [ebp + 0x4c]
push edi
adc ecx, dword [ebp + 0x50]
sub eax, 1
sbb ecx, ebx
push ecx
push eax
call fcn.100b4150
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x10078a74
cmp dword [ebp + 0x44], 0xffffffff
jne 0x10078a5f
mov eax, 0x7fffffff
cmp dword [ebp + 0x48], eax
jne 0x10078a5f
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], eax
jmp 0x10078a74
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x38]
push edi
call fcn.100b4200
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edx
push dword [ebp - 0x10]
call fcn.100132bf
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.100501eb
cmp byte [ebp + 0x6d], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
jg 0x10078aa6
cmp dword [ebp + 0x68], ebx
jne 0x10078aa6
lea ecx, [ebp - 0x10]
call fcn.1003f96c
jmp 0x1007962c
cmp byte [ebp + 0x22], bl
je 0x10078c01
cmp dword [ebp - 0x1c], ebx
jg 0x10078c01
cmp byte [ebp + 0x6d], bl
jg 0x10078c01
cmp dword [ebp + 0x3c], ebx
jne 0x10078ace
lea ecx, [ebp + 0x58]
call fcn.10002d56
cmp byte [ebp + 0x6e], bl
je 0x10078ae0
push ebx
push ebx
push dword [ebp]
call fcn.1004d6c1
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x10078b19
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x10078b22
push ebx
push 0x2000000
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
je 0x10078a99
cmp byte [ebp + 0x21], bl
je 0x10078c01
cmp dword [ebp + 0x48], ebx
jl 0x100795c1
jg 0x10078b3f
cmp dword [ebp + 0x44], ebx
jb 0x10078c01
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.100b4200
cmp dword [ebp + 0x50], ebx
jl 0x10078b6e
jg 0x10078b5c
cmp dword [ebp + 0x4c], ebx
jb 0x10078b6e
cmp edx, dword [ebp + 0x50]
jl 0x10078b6e
jg 0x10078b68
cmp eax, dword [ebp + 0x4c]
jbe 0x10078b6e
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
add eax, dword [ebp + 0x10]
mov esi, 0x7fffffff
adc edx, dword [ebp + 0x14]
cmp dword [ebp + 0x48], esi
mov dword [ebp - 0x3c], eax
mov edi, edx
jl 0x10078b94
jg 0x10078b8b
cmp dword [ebp + 0x44], 0xffffffff
jb 0x10078b94
mov dword [ebp - 0x3c], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x55], bl
jne 0x10078bb7
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.10040d01
add esp, 0x10
cmp edx, edi
jg 0x10078bb7
jl 0x10078bb3
cmp eax, dword [ebp - 0x3c]
jae 0x10078bb7
mov byte [ebp + 0x55], 1
push ebx
push edi
push dword [ebp - 0x3c]
push dword [ebp + 0x68]
call fcn.10040d01
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x10078be6
cmp edx, edi
jne 0x10078be6
cmp dword [ebp + 0x48], esi
jg 0x10078c01
jl 0x1007933d
cmp dword [ebp + 0x44], 0xffffffff
jae 0x10078c01
jmp 0x1007933d
cmp dword [ebp + 0x48], esi
jg 0x10078c01
jl 0x10078bf3
cmp dword [ebp + 0x44], 0xffffffff
jae 0x10078c01
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.10040d01
add esp, 0x10
cmp dword [ebp + 0x48], ebx
jl 0x100795c1
jg 0x10078c15
cmp dword [ebp + 0x44], ebx
jbe 0x100795c1
cmp dword [ebp + 0x50], ebx
jl 0x100795c1
jg 0x10078c29
cmp dword [ebp + 0x4c], ebx
jbe 0x100795c1
cmp byte [ebp + 0x21], bl
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
jne 0x10078c46
cmp byte [ebp + 0x5f], bl
mov byte [ebp + 0x6e], 1
je 0x10078c49
mov byte [ebp + 0x6e], bl
cmp dword [ebp - 0x1c], ebx
jle 0x10078c5e
mov eax, dword [ebp + 0x10]
cdq
idiv dword [ebp - 0x20]
mov eax, edx
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov esi, dword [ebp + 0x10]
sub esi, dword [ebp - 0x28]
mov edi, dword [ebp + 0x14]
sbb edi, dword [ebp - 0x24]
js 0x10078cb2
jg 0x10078c72
cmp esi, ebx
jbe 0x10078cb2
cmp byte [ebp + 0x6d], bl
jg 0x10078cb2
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.10040d01
add esp, 0x10
cmp eax, esi
jne 0x10078c8d
cmp edx, edi
je 0x10078cb2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x10]
call fcn.1003f96c
lea ecx, [ebp + 0x58]
call fcn.10002d56
lea ecx, [ebp - 0x54]
call fcn.1003f96c
jmp 0x100787c4
mov eax, dword [ebp - 0x10]
cmp word [eax], 0x26
mov edi, dword [ebp + 4]
mov esi, dword [ebp + 8]
sete byte [ebp + 0x5f]
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x40], ebx
je 0x10078dd2
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.10046123
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x10]
call fcn.10010cdd
cmp eax, ebx
jne 0x10078d2c
lea ecx, [ebp + 0x3c]
call fcn.1003f96c
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.10002d56
lea ecx, [ebp - 0x10]
call fcn.1003f96c
jmp 0x100787af
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 4], ecx
xor ecx, ecx
cmp ecx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
jg 0x10078d66
jl 0x10078d47
cmp eax, ebx
ja 0x10078d66
mov dword [ebp + 0xc], 0x80070057
lea ecx, [ebp + 0x3c]
call fcn.1003f96c
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10079335
cmp byte [ebp + 0x6d], bl
je 0x10078dbf
mov edx, dword [ebp - 0x60]
sub eax, edi
sbb ecx, esi
mov esi, dword [ebp - 0x64]
sub esi, dword [ebp + 0x10]
sbb edx, dword [ebp + 0x14]
cmp edx, dword [ebp + 0x50]
jl 0x10078d8d
jg 0x10078d87
cmp esi, dword [ebp + 0x4c]
jbe 0x10078d8d
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
cmp edx, ecx
jl 0x10078d9b
jg 0x10078d97
cmp esi, eax
jbe 0x10078d9b
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x10078d4e
jg 0x10078da5
cmp esi, ebx
jbe 0x10078d4e
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
add edi, eax
mov eax, dword [ebp - 0x40]
push esi
add ecx, eax
push edi
push ecx
call fcn.100144b5
add esp, 0xc
jmp 0x10078d4e
lea ecx, [ebp + 0x3c]
call fcn.1003f96c
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x10078ea7
cmp byte [ebp + 0x5f], bl
jg 0x10078ea7
lea eax, [ebp - 0x10]
push eax
call fcn.1004da1f
pop ecx
push ebx
push ebx
push 3
push ebx
push 3
movsx eax, al
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
mov dword [ebp - 0xc], eax
call fcn.10005b9d
cmp dword [ebp + 0x40], ebx
jne 0x10078e3d
push ebx
push 0x2000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
call fcn.10005b9d
cmp dword [ebp + 0x40], ebx
jne 0x10078e3d
lea ecx, [ebp + 0x40]
call fcn.10002d56
jmp 0x10078a99
cmp dword [ebp - 0xc], ebx
je 0x10078e68
push 0x200
push dword [ebp + 0x40]
call fcn.1004342a
cmp dword [ebp - 0xc], ebx
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
jle 0x10078e68
mov eax, edi
cdq
idiv dword [ebp + 0x30]
mov eax, edx
cdq
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
sub edi, dword [ebp + 0x18]
sbb esi, dword [ebp + 0x1c]
mov ecx, edi
mov eax, esi
cmp eax, ebx
jl 0x10078ea7
jg 0x10078e7c
cmp ecx, ebx
jbe 0x10078ea7
push ebx
push eax
push ecx
push dword [ebp + 0x40]
call fcn.10040d01
add esp, 0x10
cmp eax, edi
jne 0x10078e92
cmp edx, esi
je 0x10078ea7
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x40]
mov ebx, eax
call fcn.10002d56
jmp 0x10078c95
cmp dword [ebp - 0x1c], ebx
jle 0x10078edb
mov eax, dword [ebp - 0x20]
cdq
mov esi, eax
add eax, dword [ebp - 0x34]
mov edi, edx
mov ecx, edx
adc ecx, dword [ebp - 0x30]
push edi
sub eax, 1
push esi
sbb ecx, ebx
push ecx
push eax
call fcn.100b4150
push edi
push esi
push edx
push eax
call fcn.100b4200
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x10078ee7
mov eax, dword [ebp - 0x34]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp + 0x48], eax
cmp dword [ebp - 0xc], ebx
jle 0x10078f15
mov eax, dword [ebp + 0x30]
cdq
mov esi, eax
add eax, dword [ebp + 0x34]
mov edi, edx
mov ecx, edx
adc ecx, dword [ebp + 0x38]
push edi
sub eax, 1
push esi
sbb ecx, ebx
push ecx
push eax
call fcn.100b4150
push edi
push esi
push edx
push eax
call fcn.100b4200
jmp 0x10078f1b
mov eax, dword [ebp + 0x34]
mov edx, dword [ebp + 0x38]
cmp eax, dword [ebp + 0x44]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
jne 0x10078f2b
cmp edx, dword [ebp + 0x48]
je 0x10078f35
add eax, dword [ebp + 0x44]
mov ecx, edx
adc ecx, dword [ebp + 0x48]
jmp 0x10078f37
mov ecx, edx
add eax, 0x8000
adc ecx, ebx
mov esi, eax
add esi, 0x2800
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp + 8], ecx
adc ecx, ebx
cmp dword [ebp - 0x20], eax
mov dword [ebp - 0x74], ecx
jle 0x10078f5c
mov eax, dword [ebp - 0x20]
cdq
lea edi, [esi + eax]
lea eax, [edi + 0x100000]
push eax
lea ecx, [ebp + 0x2c]
mov dword [ebp - 0x74], edx
call fcn.10045fcc
mov eax, dword [ebp + 0x2c]
add eax, 0x100000
and eax, 0xfff00000
push edi
push dword [ebp - 0x6c]
add esi, eax
push eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0xc], esi
call fcn.100b40f0
add esp, 0xc
cmp dword [ebp + 0x1c], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp - 0x60], ebx
mov byte [ebp + 0x6f], bl
jl 0x10079005
jg 0x10078fac
cmp dword [ebp + 0x18], ebx
jbe 0x10079005
mov edi, dword [ebp + 0x3c]
push ebx
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x30]
mov dword [ebp - 0x18], ebx
push edi
push dword [ebp + 0x40]
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0x30]
cdq
sub eax, dword [ebp + 0x18]
sbb edx, dword [ebp + 0x1c]
sub dword [ebp + 0x4c], eax
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
sbb dword [ebp + 0x50], edx
cmp dword [ebp + 0x50], ebx
jg 0x10078ff5
jl 0x10078fe9
cmp dword [ebp + 0x4c], ebx
jae 0x10078ff5
add eax, dword [ebp + 0x4c]
adc edx, dword [ebp + 0x50]
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
push eax
mov eax, dword [ebp + 0x18]
add eax, edi
push eax
push edi
call fcn.100144b5
add esp, 0xc
cmp dword [ebp - 0x24], ebx
jl 0x10079080
jg 0x10079011
cmp dword [ebp - 0x28], ebx
jbe 0x10079080
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.10040d01
add esp, 0x10
push ebx
mov edi, eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0x74], edx
push esi
push dword [ebp + 0x68]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp + 0x60]
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp - 0x28]
push eax
add ecx, eax
push ecx
call fcn.100144b5
push dword [ebp - 0x28]
push esi
push dword [ebp + 0x3c]
call fcn.100144b5
mov eax, dword [ebp - 0x28]
add dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x24]
push ebx
push dword [ebp - 0x74]
adc dword [ebp + 0x64], eax
push edi
push dword [ebp + 0x68]
call fcn.10040d01
add esp, 0x28
cmp byte [ebp + 0x21], bl
je 0x10079080
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x5e], 1
jg 0x10079232
jl 0x10079098
cmp dword [ebp + 0x60], ebx
ja 0x10079232
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x1007923d
jg 0x100790ae
cmp dword [ebp + 0x4c], ebx
jbe 0x1007923d
cmp byte [ebp + 0x5e], bl
je 0x1007923d
cmp byte [ebp + 0x6e], bl
je 0x100791cd
mov esi, dword [ebp - 0x44]
cmp esi, eax
jg 0x100790d6
jl 0x100790d1
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp + 0x4c]
ja 0x100790d6
mov ecx, dword [ebp - 0x48]
jmp 0x100790db
mov ecx, dword [ebp + 0x4c]
mov esi, eax
mov edx, ecx
add edx, dword [ebp + 0x60]
mov eax, esi
adc eax, dword [ebp + 0x64]
cmp eax, dword [ebp + 8]
jl 0x100790fd
jg 0x100790f1
cmp edx, dword [ebp + 4]
jbe 0x100790fd
mov ecx, dword [ebp + 4]
sub ecx, dword [ebp + 0x60]
mov esi, dword [ebp + 8]
sbb esi, dword [ebp + 0x64]
cmp dword [ebp - 0xc], ebx
jle 0x10079123
mov eax, dword [ebp + 0x30]
cdq
mov edi, eax
mov eax, dword [ebp + 0x30]
add edi, ecx
mov dword [ebp - 0x68], edx
adc dword [ebp - 0x68], esi
dec eax
not eax
cdq
and edi, eax
mov eax, dword [ebp - 0x68]
and eax, edx
mov dword [ebp - 0x30], eax
jmp 0x10079128
mov edi, ecx
mov dword [ebp - 0x30], esi
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x34], edi
je 0x10079183
mov esi, dword [ebp - 0x3c]
sub esi, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x38]
sbb edi, dword [ebp - 0x58]
cmp edi, dword [ebp - 0x30]
jl 0x1007914e
jg 0x10079148
cmp esi, dword [ebp - 0x34]
jbe 0x1007914e
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x10079175
jg 0x1007915a
cmp dword [ebp - 0x34], ebx
jbe 0x10079175
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x5c]
add ecx, eax
mov eax, dword [ebp + 0x60]
push esi
push ecx
mov ecx, dword [ebp + 0x3c]
add eax, ecx
push eax
call fcn.100144b5
add esp, 0xc
add dword [ebp - 0x5c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
adc dword [ebp - 0x58], edi
jmp 0x100791a7
mov ecx, dword [ebp + 0x3c]
push ebx
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp + 0x60]
push edi
add eax, ecx
push eax
push dword [ebp + 0x40]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
cmp edi, ebx
jl 0x1007923d
jg 0x100791b9
cmp esi, ebx
jbe 0x1007923d
cmp edi, dword [ebp + 0x50]
jl 0x10079217
jg 0x100791c5
cmp esi, dword [ebp + 0x4c]
jbe 0x10079217
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x50]
jmp 0x10079211
cmp dword [ebp + 0x48], eax
jg 0x100791e4
jl 0x100791dc
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x4c]
ja 0x100791e4
mov esi, dword [ebp + 0x44]
mov edi, dword [ebp + 0x48]
jmp 0x100791e9
mov esi, dword [ebp + 0x4c]
mov edi, eax
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
add ecx, esi
adc eax, edi
cmp eax, dword [ebp + 8]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
jl 0x10079217
jg 0x10079205
cmp ecx, dword [ebp + 4]
jbe 0x10079217
mov esi, dword [ebp + 4]
sub esi, dword [ebp + 0x60]
mov edi, dword [ebp + 8]
sbb edi, dword [ebp + 0x64]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x10079226
cmp dword [ebp + 0x50], 0x7fffffff
je 0x1007922c
sub dword [ebp + 0x4c], esi
sbb dword [ebp + 0x50], edi
add dword [ebp + 0x60], esi
adc dword [ebp + 0x64], edi
mov eax, dword [ebp + 0x3c]
mov dword [ebp - 0x24], eax
jmp 0x10079538
cmp dword [ebp + 0x64], ebx
jl 0x1007958d
jg 0x10079251
cmp dword [ebp + 0x60], ebx
jbe 0x1007958d
mov eax, dword [ebp + 0x3c]
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x48]
cmp eax, ecx
jg 0x10079279
jl 0x1007926e
mov edx, dword [ebp + 0x44]
cmp edx, dword [ebp + 0x60]
ja 0x10079279
mov ecx, dword [ebp + 0x44]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
jmp 0x10079282
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ecx
cmp dword [ebp - 0x1c], ebx
mov dword [ebp + 0x24], ebx
jle 0x100792a3
mov eax, dword [ebp - 0x20]
cdq
push edx
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.100b64f0
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jmp 0x100792a9
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
mov edi, dword [ebp + 0x34]
sub edi, dword [ebp + 0x18]
mov esi, dword [ebp + 0x38]
sbb esi, dword [ebp + 0x1c]
mov dword [ebp - 0x78], edi
js 0x1007934a
jg 0x100792c8
cmp edi, ebx
jbe 0x1007934a
cmp byte [ebp + 0x6d], bl
je 0x100792f0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push edi
push dword [ebp - 0x24]
add ecx, eax
push ecx
call fcn.100144b5
add esp, 0xc
add dword [ebp + 0x10], edi
mov dword [ebp + 0x24], edi
adc dword [ebp + 0x14], esi
jmp 0x100794dc
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.100446f8
add esp, 0x14
test eax, eax
jne 0x100794dc
cmp byte [ebp + 0x56], bl
jne 0x1007944d
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x1007932a
xor eax, eax
inc eax
mov dword [ebp + 0xc], eax
lea ecx, [ebp + 0x2c]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.10002d56
lea ecx, [ebp - 0x10]
call fcn.1003f96c
jmp 0x10079af7
cmp dword [ebp + 0x1c], ebx
jl 0x1007940d
jg 0x1007935e
cmp dword [ebp + 0x18], ebx
jbe 0x1007940d
push dword [ebp - 0x20]
push ebx
push dword [ebp + 0xc]
call fcn.100b40f0
mov eax, dword [ebp - 0x20]
cdq
push 1
mov esi, eax
push ebx
mov edi, edx
mov dword [ebp - 0x98], esi
sub esi, dword [ebp + 0x18]
push ebx
push dword [ebp + 0x68]
mov dword [ebp - 0x94], edi
sbb edi, dword [ebp + 0x1c]
call fcn.10040d01
add esp, 0x1c
push ebx
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0x8c], edx
push dword [ebp + 0xc]
mov dword [ebp - 0x18], ebx
push dword [ebp + 0x68]
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x18]
add eax, ecx
mov ecx, dword [ebp - 0x24]
push esi
push eax
mov eax, dword [ebp + 0x60]
add eax, ecx
push eax
call fcn.100144b5
mov eax, dword [ebp - 0x98]
add dword [ebp + 0x60], esi
push ebx
push dword [ebp - 0x8c]
adc dword [ebp + 0x64], edi
push dword [ebp - 0x90]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x94]
push dword [ebp + 0x68]
mov dword [ebp + 0x38], eax
call fcn.10040d01
mov edi, dword [ebp - 0x78]
add esp, 0x1c
cmp byte [ebp + 0x21], bl
je 0x1007940d
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x24], ebx
jl 0x10079515
jg 0x10079424
cmp dword [ebp + 0x34], ebx
jbe 0x10079515
push ebx
lea eax, [ebp + 0x24]
push eax
push dword [ebp + 0x34]
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x10079515
cmp byte [ebp + 0x56], bl
je 0x10079586
mov byte [ebp + 0x56], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov al, byte [ebp + 0x56]
lea ecx, [ebp + 0x58]
mov byte [ebp + 0x57], al
mov byte [ebp + 0x56], bl
mov dword [ebp + 0x24], ebx
call fcn.10002d56
push ebx
push ebx
push 4
push ebx
push ebx
mov esi, 0xc0000000
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x100794b8
push ebx
push ebx
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x100794b8
push ebx
mov eax, 0x2000000
push eax
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
mov dword [ebp + 0x68], eax
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.100446f8
add esp, 0x14
test eax, eax
je 0x10079317
cmp byte [ebp + 0x57], 2
je 0x10079515
cmp dword [ebp + 0x24], edi
jbe 0x100794e4
mov dword [ebp + 0x24], edi
cmp byte [ebp + 0x6f], bl
je 0x100794fb
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.100b40f0
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x24]
sub dword [ebp + 0x34], eax
mov byte [ebp + 0x56], bl
sbb dword [ebp + 0x38], ebx
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
add dword [ebp - 0x24], edi
jmp 0x1007934a
cmp byte [ebp + 0x6f], bl
je 0x1007952c
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.100b40f0
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x24]
add dword [ebp - 0x24], eax
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
mov eax, dword [ebp + 0x48]
cmp dword [ebp + 0x64], eax
jg 0x1007925a
jl 0x10079552
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x60], eax
jae 0x1007925a
cmp dword [ebp + 0x64], ebx
jl 0x10079098
jg 0x10079566
cmp dword [ebp + 0x60], ebx
jbe 0x10079098
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x24]
je 0x10079098
push dword [ebp + 0x60]
push dword [ebp - 0x24]
push eax
call fcn.100144b5
add esp, 0xc
jmp 0x10079098
mov dword [ebp - 0x60], 1
cmp dword [ebp - 0x60], ebx
jne 0x1007931d
cmp dword [ebp + 0x50], ebx
jl 0x100795b9
jg 0x100795a2
cmp dword [ebp + 0x4c], ebx
jbe 0x100795b9
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x1007931d
cmp dword [ebp + 0x50], 0x7fffffff
jne 0x1007931d
mov dword [ebp + 0xc], ebx
jmp 0x1007932d
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x1007933d
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0x68]
call fcn.10040d01
add esp, 0x10
jmp 0x1007933d
cmp byte [ebp + 0x6d], bl
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp + 0x30], ebx
jne 0x1007976b
cmp dword [ebp - 0x1c], 0x11
jne 0x10079641
lea eax, [ebp - 0x48]
push eax
push ebx
push dword [ebp + 0x68]
call fcn.1005782a
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jg 0x100796ab
jl 0x1007962c
cmp eax, ebx
jae 0x100796ab
lea ecx, [ebp + 0x58]
call fcn.10002d56
lea ecx, [ebp - 0x54]
call fcn.1003f96c
jmp 0x100783a6
cmp dword [ebp + 0x68], ebx
je 0x100796b1
cmp dword [ebp - 0x1c], ebx
jne 0x10079686
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.10040d01
mov ecx, dword [ebp + 0x10]
add esp, 0x10
mov edi, eax
mov eax, dword [ebp + 0x14]
sub ecx, 0x400
mov esi, edx
sbb eax, ebx
cmp esi, eax
jg 0x100796b1
jl 0x10079676
cmp edi, ecx
jae 0x100796b1
cmp dword [ebp + 0x3c], ebx
jne 0x100796b1
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x100796b1
push dword [ebp - 0x1c]
push dword [ebp + 0x68]
call fcn.10044651
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x100796b1
jl 0x100796a1
cmp edi, ebx
jae 0x100796b1
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x100796b1
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
cmp byte [ebp - 0x2c], bl
je 0x100796dc
cmp dword [ebp + 0x60], 0xfffffffc
jne 0x100796dc
mov ecx, edi
sub ecx, dword [ebp + 0x10]
mov eax, esi
sbb eax, dword [ebp + 0x14]
mov dword [ebp + 0x60], ecx
cmp eax, ebx
mov dword [ebp + 0x64], eax
jg 0x100796dc
jl 0x100796d6
cmp ecx, ebx
jae 0x100796dc
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x68], ebx
jne 0x10079749
cmp dword [ebp - 0x1c], ebx
jne 0x1007973c
cmp byte [ebp + 0x6e], bl
je 0x100796fc
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp]
call fcn.1004d6c1
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x10079753
push ebx
push 0x2000000
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.10005b9d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x10079753
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x10078c9d
cmp byte [ebp + 0x6f], bl
je 0x1007975b
cmp dword [ebp - 0x1c], ebx
jne 0x10079760
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp dword [ebp - 0x1c], ebx
je 0x1007976b
mov eax, dword [ebp + 0x10]
xor edx, edx
div dword [ebp - 0x20]
mov dword [ebp + 0x30], edx
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x14]
adc ecx, dword [ebp - 0x38]
sub edi, eax
sbb esi, ecx
cmp byte [ebp + 0x6d], bl
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], esi
jne 0x100797cb
movzx eax, word [ebp + 0x30]
mov ecx, dword [ebp + 0x10]
cdq
sub ecx, eax
mov eax, dword [ebp + 0x14]
push ebx
sbb eax, edx
push eax
push ecx
push dword [ebp + 0x68]
call fcn.10040d01
add esp, 0x10
cmp edx, ebx
jg 0x100797cb
jl 0x100797b6
cmp eax, ebx
jae 0x100797cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.1003f96c
jmp 0x10078c9d
cmp byte [ebp - 0x29], bl
je 0x10079828
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x44]
jl 0x100797e8
jg 0x100797e2
cmp eax, dword [ebp + 0x18]
jbe 0x100797e8
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
cmp byte [ebp + 0x6d], bl
je 0x10079807
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x40]
push dword [ebp - 0xc]
add ecx, eax
push ecx
call fcn.100144b5
add esp, 0xc
jmp 0x10079ae1
cmp ecx, ebx
jl 0x10079ae1
jg 0x10079819
cmp eax, ebx
jbe 0x10079ae1
push dword [ebp + 0x2c]
movzx edx, word [ebp + 0x30]
push edx
push ecx
push eax
push dword [ebp - 0xc]
jmp 0x10079895
mov ecx, dword [ebp + 0x64]
cmp ecx, ebx
jl 0x1007984a
mov eax, dword [ebp + 0x60]
jg 0x10079838
cmp eax, ebx
jb 0x1007984a
cmp ecx, dword [ebp + 0x48]
jg 0x1007984a
jl 0x10079844
cmp eax, dword [ebp + 0x44]
jae 0x1007984a
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], ecx
cmp byte [ebp + 0x57], bl
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x78], eax
je 0x100798a5
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x3c]
call fcn.100460ab
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x48]
jl 0x1007987d
jg 0x1007987a
cmp eax, dword [ebp + 0x44]
jbe 0x1007987d
mov ecx, dword [ebp + 0x44]
cmp ecx, ebx
jle 0x10079ae1
push dword [ebp - 0x1c]
movzx eax, word [ebp + 0x30]
push eax
mov eax, ecx
cdq
push edx
push eax
push dword [ebp + 0x3c]
push dword [ebp + 0x68]
call fcn.100579e1
add esp, 0x18
jmp 0x10079ae1
mov esi, dword [ebp - 0x20]
lea eax, [esi + esi]
push eax
lea ecx, [ebp - 0x60]
call fcn.10045fcc
mov eax, dword [ebp - 0x60]
add eax, esi
lea edi, [esi - 1]
not edi
and edi, eax
movzx eax, word [ebp + 0x30]
sub esi, eax
cmp dword [ebp + 0x48], ebx
mov al, byte [ebp - 0x2a]
mov dword [ebp - 0xc], esi
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
mov byte [ebp + 0x57], bl
mov byte [ebp + 0x6e], al
jl 0x10079ad9
jle 0x10079ad0
cmp dword [ebp + 0x38], ebx
jg 0x100798ff
jl 0x100798f3
cmp dword [ebp + 0x34], ebx
ja 0x100798ff
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x10079ad9
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
jle 0x10079ad9
cmp dword [ebp + 0x48], ebx
jl 0x10079a78
jg 0x1007991f
cmp dword [ebp + 0x44], ebx
jbe 0x10079a78
cmp dword [ebp + 0x38], ebx
jg 0x10079a52
jl 0x10079933
cmp dword [ebp + 0x34], ebx
ja 0x10079a52
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x10079a78
lea eax, [ebp + 0x78]
push eax
call fcn.1003f9c4
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
pop ecx
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
jne 0x100799b3
inc eax
inc eax
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x34], 1
mov dword [ebp + 0x38], ebx
call fcn.1005381f
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x100799b3
cmp si, 0x2a
je 0x10079a4c
cmp si, 0x28
je 0x100799db
cmp si, 0x30
jb 0x1007999a
cmp si, 0x39
jbe 0x100799bb
cmp byte [ebp + 0x6e], bl
je 0x100799ae
or esi, 0x20
cmp si, 0x61
jb 0x100799ae
cmp si, 0x7a
jbe 0x100799bb
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov si, word [eax]
cmp si, bx
jne 0x1007997e
cmp word [eax], 0x30
jne 0x100799f2
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x100799f2
add eax, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], eax
jmp 0x100799f7
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
call fcn.1005381f
pop ecx
pop ecx
jmp 0x10079a4c
cmp byte [ebp + 0x6e], bl
je 0x10079a30
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x24], 2
call fcn.10046e85
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.10045b88
add esp, 0x10
test al, al
jne 0x10079a44
mov al, byte [ebp - 0x2a]
mov byte [ebp + 0x6e], al
jmp 0x10079a44
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.10053a89
cmp eax, 1
pop ecx
pop ecx
jl 0x10079a78
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x40]
je 0x10079a78
mov al, byte [ebp + 0x18]
mov byte [ebp + 0x57], al
add dword [ebp + 0x34], 0xffffffff
mov eax, dword [ebp - 4]
mov cl, byte [ebp + 0x57]
adc dword [ebp + 0x38], 0xffffffff
mov byte [eax + edi], cl
inc eax
add dword [ebp + 0x44], 0xffffffff
mov dword [ebp - 4], eax
adc dword [ebp + 0x48], 0xffffffff
cmp eax, dword [ebp - 0xc]
jl 0x1007990b
mov esi, dword [ebp - 4]
cmp esi, ebx
jle 0x10079ad9
cmp byte [ebp + 0x6d], bl
je 0x10079aa2
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push esi
add ecx, eax
push edi
push ecx
call fcn.100144b5
mov eax, esi
cdq
add esp, 0xc
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp 0x10079abb
push dword [ebp + 0x2c]
movzx eax, word [ebp + 0x30]
push eax
mov eax, esi
cdq
push edx
push eax
push edi
push dword [ebp + 0x68]
call fcn.100579e1
add esp, 0x18
cmp dword [ebp + 0x48], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0xc], 0x200
jg 0x100798e7
jl 0x10079ad9
cmp dword [ebp + 0x44], ebx
ja 0x100798e7
lea ecx, [ebp - 0x60]
call fcn.1003f96c
cmp dword [ebp + 0x68], ebx
je 0x10079aef
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.1003f96c
cmp byte [ebp + 0x55], bl
je 0x10079b0a
cmp dword [ebp + 0x68], ebx
je 0x10079b0a
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp byte [ebp - 5], bl
je 0x10079b57
cmp dword [ebp + 0x68], ebx
je 0x10079b57
push 2
lea ecx, [ebp - 0x78]
push ecx
push ebx
xor eax, eax
push eax
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x10079b57
push ebx
push 0x100e322c
push str.Kernel32.DLL
push str.SetFileValidData
call fcn.10040e9d
mov eax, dword [0x100e322c]
add esp, 0x10
cmp eax, ebx
je 0x10079b57
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x68]
call eax
lea ecx, [ebp + 0x58]
call fcn.10002d56
lea ecx, [ebp - 0x54]
call fcn.1003f96c
mov ebx, dword [ebp + 0xc]
jmp 0x100787c4