Function at 0x477f83
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.0044e87c
push 1
push 2
push str.SeBackupPrivilege
call fcn.004139d3
push 0x10
push 2
push str.SeRestorePrivilege
call fcn.004139d3
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 0x478022
mov eax, ecx
call fcn.004b1b03
test al, al
jne 0x47802a
cmp cx, 0x2a
jne 0x478005
mov al, byte [edx]
mov byte [ebp + 0x6f], al
jmp 0x47801d
cmp cx, 0x2e
jne 0x478012
mov al, byte [edx]
mov byte [ebp + 0x57], al
jmp 0x47801d
cmp cx, 0x23
jne 0x47801d
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 0x477fed
lea eax, [ebp + 0x78]
push eax
call fcn.0043fe57
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x40], esi
call fcn.0044658e
cmp word [esi], 0x2d
jne 0x478092
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x478077
mov eax, ecx
call fcn.004b1b03
test al, al
jne 0x478077
cmp cx, 0x2c
je 0x478077
lea eax, [ebp - 0x40]
push eax
call fcn.00408f31
mov esi, dword [ebp - 0x40]
cmp word [esi], 0x2d
pop ecx
je 0x478048
cmp esi, dword [ebp + 0x78]
je 0x478092
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.0045937c
mov eax, dword [ebp - 0x70]
push 1
lea ecx, [ebp]
mov dword [ebp + 0x78], eax
call fcn.004465ac
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 0x4782be
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4d1d8c
call fcn.004485c7
add esp, 0xc
test al, al
je 0x478115
mov byte [ebp - 0x2a], 1
jmp 0x4782be
push 4
lea eax, [ebp + 0x78]
push eax
push 0x4d1d84
call fcn.004485c7
add esp, 0xc
test al, al
je 0x478138
mov dword [ebp - 0x24], 0x80000000
jmp 0x4782be
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.0044867a
add esp, 0xc
test al, al
jne 0x4782d0
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4d1ca4
call fcn.0044867a
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x47820c
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp + 0xc], esi
call fcn.00408f31
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp - 0xc], ebx
jne 0x4781c0
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.00405c44
mov eax, dword [ebp - 4]
cmp word [eax], bx
pop ecx
je 0x4781ad
mov word [eax], bx
mov ecx, dword [ebp + 0x24]
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x40]
call fcn.0044ecec
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004429b2
mov eax, dword [ebp - 0x6c]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x4781fc
cmp eax, ebx
je 0x4781fc
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov dword [ebp + 0x40], ebx
call fcn.0044048f
test eax, eax
pop ecx
pop ecx
je 0x4781fc
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x4781fc
mov dword [ebp + 0x3c], esi
lea ecx, [ebp - 0xc]
call fcn.0043fe25
mov esi, dword [ebp - 0x40]
jmp 0x4782be
push 3
push eax
push 0x4d1d80
call fcn.004485c7
add esp, 0xc
test al, al
je 0x478229
mov byte [ebp - 5], 1
jmp 0x4782be
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4d1d7c
call fcn.004485c7
add esp, 0xc
test al, al
je 0x478246
mov byte [ebp + 0x6d], 1
jmp 0x4782be
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.004485c7
add esp, 0xc
test al, al
je 0x478263
mov byte [ebp + 0x6e], 1
jmp 0x4782be
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.004485c7
add esp, 0xc
test al, al
je 0x478280
mov byte [ebp + 0x22], 1
jmp 0x4782be
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4d1d70
call fcn.004485c7
add esp, 0xc
test al, al
jne 0x478315
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4cbc90
call fcn.004485c7
add esp, 0xc
test al, al
je 0x4782b4
mov byte [ebp + 0x5e], 1
jmp 0x4782be
lea eax, [ebp + 0x78]
push eax
call fcn.00408f31
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x4780f5
jmp 0x47864e
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00408f31
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.004429b2
add esp, 0xc
cmp dword [ebp - 0x48], edi
je 0x478bf6
cmp dword [ebp - 0x48], ebx
je 0x478bf6
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x478bf6
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x23], 1
mov byte [ebp + 0x6f], 1
jne 0x47864e
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x47861b
mov eax, ecx
call fcn.004b1b03
test al, al
jne 0x47861b
cmp cx, 0x2c
je 0x47861b
mov eax, dword [ebp + 0x78]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.00408f31
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.00441277
add esp, 0x10
test al, al
je 0x4783b0
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.00453c1f
test eax, eax
pop ecx
pop ecx
jle 0x47860b
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 0x47860b
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.00441277
add esp, 0xc
test al, al
je 0x4783ed
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.00453c1f
test eax, eax
pop ecx
pop ecx
jle 0x47860b
mov eax, dword [ebp + 0x28]
cdq
jmp 0x4783a5
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.00441277
add esp, 0xc
test al, al
je 0x478433
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.00453c1f
test eax, eax
pop ecx
pop ecx
jle 0x47860b
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x47860b
push 7
push dword [ebp + 0x78]
push str._count
call fcn.00441277
add esp, 0xc
test al, al
je 0x47847b
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.00453c1f
test eax, eax
pop ecx
pop ecx
jle 0x47860b
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x48], eax
jmp 0x47860b
push 5
push dword [ebp + 0x78]
push str._len
call fcn.00441277
add esp, 0xc
test al, al
je 0x4784c3
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.00453c1f
test eax, eax
pop ecx
pop ecx
jle 0x47860b
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x50], eax
jmp 0x47860b
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.00441277
add esp, 0xc
test al, al
je 0x478500
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.00441277
add esp, 0xc
test al, al
je 0x47860b
mov byte [ebp - 0x2b], 1
jmp 0x47860b
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.00441277
add esp, 0xc
test al, al
je 0x47854e
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.00453c1f
test eax, eax
pop ecx
pop ecx
jle 0x47860b
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x58], eax
jmp 0x47860b
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.00441277
add esp, 0xc
test al, al
je 0x478599
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.00453c1f
test eax, eax
pop ecx
pop ecx
jle 0x47860b
mov eax, dword [ebp + 0x28]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 8], eax
jmp 0x47860b
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.004485c7
add esp, 0xc
test al, al
je 0x4785b6
mov byte [ebp + 0x6e], 1
jmp 0x47860b
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.004485c7
add esp, 0xc
test al, al
je 0x4785d3
mov byte [ebp + 0x22], 1
jmp 0x47860b
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.004485c7
add esp, 0xc
test al, al
je 0x4785f0
mov byte [ebp + 0x22], 0x10
jmp 0x47860b
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4d1d80
call fcn.004485c7
add esp, 0xc
test al, al
je 0x47860b
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x47832a
cmp dword [ebp + 8], ebx
jg 0x47864e
jl 0x478627
cmp dword [ebp + 4], ebx
jae 0x47864e
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004b4630
cmp edx, ebx
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
jg 0x47864e
jl 0x478648
cmp eax, ebx
jae 0x47864e
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.004485c7
add esp, 0xc
test al, al
je 0x478669
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.0043ae93
cmp word [eax], 0x2c
jne 0x478bf1
mov eax, dword [ebp]
mov ax, word [eax]
cmp ax, bx
je 0x478bf1
cmp ax, 0x26
jne 0x4786a2
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x4786aa
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.0045937c
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00453c1f
cmp dword [ebp + 0x14], ebx
pop ecx
pop ecx
jg 0x4786e5
jl 0x478bf1
cmp dword [ebp + 0x10], ebx
jb 0x478bf1
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 0x478723
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043fe57
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.00453c1f
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.004403c2
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x47873f
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x478765
jg 0x47874d
cmp dword [ebp + 0x4c], ebx
jb 0x478765
cmp dword [ebp + 0x64], eax
jl 0x478765
jg 0x47875c
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x4c]
jbe 0x478765
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043fe57
push dword [ebp + 0x78]
call fcn.004111cf
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.004412b6
add esp, 0x10
cmp al, bl
mov byte [ebp + 0x21], al
jne 0x4787cb
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 4]
push eax
call fcn.00449a42
test eax, eax
pop ecx
pop ecx
je 0x4787cb
mov eax, dword [ebp - 4]
mov ax, word [eax]
cmp ax, bx
je 0x4787bb
cmp ax, 0x2c
jne 0x4787cb
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 0x4787e0
xor ebx, ebx
inc ebx
jmp 0x478bf6
lea eax, [ebp - 4]
push 1
push eax
mov dword [ebp - 4], esi
call fcn.0044e7a8
pop ecx
pop ecx
lea ecx, [ebp - 0x54]
mov esi, eax
call fcn.0044641a
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 0x478963
mov esi, 0x4e3d84
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0xc]
call fcn.0044658e
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.00411019
cmp eax, ebx
mov dword [ebp + 0x2c], eax
jne 0x47884e
lea ecx, [ebp + 0xc]
call fcn.0043fe25
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x478be9
mov edx, dword [ebp + 0x64]
cmp edx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3c], eax
jl 0x478879
mov esi, dword [ebp + 0x60]
jg 0x478864
cmp esi, ebx
jbe 0x478879
mov ecx, esi
add ecx, dword [ebp + 4]
mov eax, edx
adc eax, dword [ebp + 8]
cmp eax, ebx
jl 0x47889e
jg 0x478879
cmp ecx, dword [ebp - 0x3c]
jbe 0x47889e
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 0x47889e
jl 0x478894
cmp esi, ebx
ja 0x47889e
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 0x4788c0
jg 0x4788ac
cmp dword [ebp + 0x4c], ebx
jb 0x4788c0
cmp eax, edx
jg 0x4788c0
jl 0x4788b7
cmp dword [ebp + 0x4c], esi
jae 0x4788c0
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.0044645c
mov edi, dword [ebp - 0x54]
cmp edi, ebx
jne 0x4788ee
lea ecx, [ebp + 0xc]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x479a66
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 0x47891b
jg 0x478912
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x3c]
jbe 0x47891b
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 0x478943
jg 0x478934
cmp eax, ebx
jbe 0x478943
cmp edi, ecx
je 0x478943
push esi
push ecx
push edi
call fcn.004147ef
add esp, 0xc
lea ecx, [ebp + 0xc]
mov byte [ebp + 0x5f], 1
mov byte [ebp - 0x29], 1
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x478b3e
cmp esi, ebx
je 0x478b3e
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 0x47899e
inc eax
inc eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x88], 0x40
push 0x4c7cf8
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00457cfe
mov cx, word [esi]
mov dword [ebp - 0x60], eax
mov eax, dword [0x4e2fc8]
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 0x4789e4
cmp word [ecx + 2], bx
jne 0x4789e4
mov eax, dword [0x4e2c88]
jmp 0x4789f6
cmp dx, bx
je 0x4789f6
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 0x478a1d
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push dword [ebp - 0x60]
push dword [ebp + 0x30]
push eax
call fcn.0041593f
add esp, 0x14
mov edi, eax
cmp dword [ebp + 0xc], ebx
je 0x478a2b
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp edi, ebx
je 0x479a66
cmp dword [ebp + 0x64], ebx
mov eax, dword [ebp - 0x50]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
jl 0x478a65
jg 0x478a49
cmp dword [ebp + 0x60], ebx
jbe 0x478a65
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 0x478a8b
jg 0x478a65
cmp ecx, dword [ebp - 0x18]
jbe 0x478a8b
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 0x478a8b
jl 0x478a81
cmp edi, ebx
ja 0x478a8b
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.0044645c
mov eax, dword [ebp - 0x54]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x479a66
mov ecx, dword [ebp - 0x18]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.004b4520
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp dword [ebp + 8], eax
jl 0x478adc
jg 0x478ad0
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x478adc
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 0x478b04
jg 0x478af0
cmp dword [ebp + 0x4c], ebx
jb 0x478b04
cmp eax, esi
jg 0x478b04
jl 0x478afb
cmp dword [ebp + 0x4c], edi
jae 0x478b04
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 0x478b3e
jg 0x478b2c
cmp eax, ebx
jbe 0x478b3e
cmp edi, dword [ebp + 0x30]
je 0x478b3e
push eax
push dword [ebp + 0x30]
push edi
call fcn.004147ef
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 0x478b63
push 0x40
push 2
push str.SeManageVolumePrivilege
call fcn.004139d3
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 0x478b85
mov byte [ebp + 0x56], bl
cmp byte [ebp + 0x23], bl
je 0x478b9a
cmp byte [ebp - 0x2b], bl
sete byte [ebp + 0x55]
cmp byte [ebp + 0x5f], bl
jne 0x478b9a
mov byte [ebp + 0x23], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x478ca5
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.0044658e
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp]
call fcn.00411019
cmp eax, ebx
jne 0x478c22
lea ecx, [ebp + 0x40]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x58]
call fcn.00402d2b
lea ecx, [ebp - 0x54]
call fcn.0043fe25
mov ebx, 0x80070057
lea ecx, [ebp]
call fcn.0043fe25
lea ecx, [ebp - 0x70]
call fcn.0043fe25
lea ecx, [ebp - 0x7c]
call fcn.00402d2b
lea ecx, [ebp - 0x80]
call fcn.0043fe25
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 0x478c3d
jl 0x478bce
cmp ecx, ebx
jbe 0x478bce
cmp byte [ebp + 0x5f], bl
je 0x478c8d
mov esi, dword [ebp + 0x10]
sub ecx, esi
sbb eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x64]
jl 0x478c5c
jg 0x478c56
cmp ecx, dword [ebp + 0x60]
jbe 0x478c5c
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x478c75
jg 0x478c66
cmp ecx, ebx
jbe 0x478c75
push dword [ebp + 0x18]
add esi, edx
push edi
push esi
call fcn.004147ef
add esp, 0xc
lea ecx, [ebp + 0x40]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x479f29
lea ecx, [ebp + 0x40]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x478e08
cmp byte [ebp + 0x5e], bl
je 0x478caf
mov dword [ebp - 0x1c], ebx
jmp 0x478ccc
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp]
push eax
call fcn.0044dd53
movsx eax, al
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jl 0x478be1
cmp byte [ebp + 0x6f], bl
mov ecx, dword [ebp]
jne 0x478d18
cmp dword [ebp - 0x1c], ebx
jne 0x478d10
cmp word [ecx], 0x5c
jne 0x478d10
cmp word [ecx + 2], 0x5c
jne 0x478d10
mov ax, word [ecx + 4]
cmp ax, 0x3f
je 0x478cf6
cmp ax, 0x2e
jne 0x478d10
cmp word [ecx + 6], 0x5c
jne 0x478d10
cmp ax, 0x3f
jne 0x478d18
cmp word [ecx + 8], ax
jne 0x478d18
cmp word [ecx + 0xa], 0x3a
jne 0x478d18
mov edi, dword [ebp - 0x24]
mov byte [ebp + 0x5e], bl
jmp 0x478d54
cmp byte [ebp + 0x6f], bl
mov byte [ebp + 0x5e], 1
jne 0x478d32
push ebx
push ecx
call fcn.004b3d02
test eax, eax
pop ecx
pop ecx
je 0x478d32
mov byte [ebp + 0x6f], 0x20
cmp dword [ebp + 0x3c], ebx
mov edi, dword [ebp - 0x24]
jne 0x478d78
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.00405c6d
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x478d73
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.00405c6d
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x5e], bl
je 0x478da5
cmp byte [ebp + 0x23], bl
je 0x478da5
cmp dword [ebp - 0x1c], ebx
jg 0x478da5
cmp dword [ebp + 0x68], ebx
jne 0x478dc6
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.00405c6d
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x478dc6
push ebx
push 0x2000000
push 3
push ebx
push 3
or edi, esi
push edi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c6d
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x40], ebx
je 0x478de4
cmp dword [ebp + 0x58], ebx
je 0x478de4
push dword [ebp + 0x40]
push dword [ebp + 0x58]
push dword [ebp + 0x24]
call fcn.004a8333
add esp, 0xc
mov dword [ebp + 0x58], ebx
cmp dword [ebp - 0x1c], ebx
je 0x478e08
cmp dword [ebp + 0x68], ebx
je 0x478e08
mov edi, 0x200
push edi
push dword [ebp + 0x68]
call fcn.004438ac
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
jge 0x478e08
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 0x479a16
cmp dword [ebp + 0x38], ebx
jl 0x478be1
mov edi, dword [ebp + 0x34]
jg 0x478e35
cmp edi, ebx
jbe 0x478be1
cmp dword [ebp - 0x30], ebx
jl 0x478be1
jg 0x478e49
cmp dword [ebp - 0x34], ebx
jbe 0x478be1
cmp dword [ebp + 0x50], ebx
jl 0x478e78
jg 0x478e55
cmp dword [ebp + 0x4c], ebx
jb 0x478e78
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.004b4580
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x478ea6
cmp dword [ebp + 0x44], 0xffffffff
jne 0x478e91
mov eax, 0x7fffffff
cmp dword [ebp + 0x48], eax
jne 0x478e91
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], eax
jmp 0x478ea6
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x38]
push edi
call fcn.004b4630
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edx
push dword [ebp - 0x10]
call fcn.004135f9
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.004505eb
cmp byte [ebp + 0x6d], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
jg 0x478ed8
cmp dword [ebp + 0x68], ebx
jne 0x478ed8
lea ecx, [ebp - 0x10]
call fcn.0043fe25
jmp 0x479a5e
cmp byte [ebp + 0x22], bl
je 0x479033
cmp dword [ebp - 0x1c], ebx
jg 0x479033
cmp byte [ebp + 0x6d], bl
jg 0x479033
cmp dword [ebp + 0x3c], ebx
jne 0x478f00
lea ecx, [ebp + 0x58]
call fcn.00402d2b
cmp byte [ebp + 0x6e], bl
je 0x478f12
push ebx
push ebx
push dword [ebp]
call fcn.0044daf3
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x478f4b
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c6d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x478f54
push ebx
push 0x2000000
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c6d
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
je 0x478ecb
cmp byte [ebp + 0x21], bl
je 0x479033
cmp dword [ebp + 0x48], ebx
jl 0x4799f3
jg 0x478f71
cmp dword [ebp + 0x44], ebx
jb 0x479033
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.004b4630
cmp dword [ebp + 0x50], ebx
jl 0x478fa0
jg 0x478f8e
cmp dword [ebp + 0x4c], ebx
jb 0x478fa0
cmp edx, dword [ebp + 0x50]
jl 0x478fa0
jg 0x478f9a
cmp eax, dword [ebp + 0x4c]
jbe 0x478fa0
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 0x478fc6
jg 0x478fbd
cmp dword [ebp + 0x44], 0xffffffff
jb 0x478fc6
mov dword [ebp - 0x3c], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x55], bl
jne 0x478fe9
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.00441183
add esp, 0x10
cmp edx, edi
jg 0x478fe9
jl 0x478fe5
cmp eax, dword [ebp - 0x3c]
jae 0x478fe9
mov byte [ebp + 0x55], 1
push ebx
push edi
push dword [ebp - 0x3c]
push dword [ebp + 0x68]
call fcn.00441183
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x479018
cmp edx, edi
jne 0x479018
cmp dword [ebp + 0x48], esi
jg 0x479033
jl 0x47976f
cmp dword [ebp + 0x44], 0xffffffff
jae 0x479033
jmp 0x47976f
cmp dword [ebp + 0x48], esi
jg 0x479033
jl 0x479025
cmp dword [ebp + 0x44], 0xffffffff
jae 0x479033
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.00441183
add esp, 0x10
cmp dword [ebp + 0x48], ebx
jl 0x4799f3
jg 0x479047
cmp dword [ebp + 0x44], ebx
jbe 0x4799f3
cmp dword [ebp + 0x50], ebx
jl 0x4799f3
jg 0x47905b
cmp dword [ebp + 0x4c], ebx
jbe 0x4799f3
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 0x479078
cmp byte [ebp + 0x5f], bl
mov byte [ebp + 0x6e], 1
je 0x47907b
mov byte [ebp + 0x6e], bl
cmp dword [ebp - 0x1c], ebx
jle 0x479090
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 0x4790e4
jg 0x4790a4
cmp esi, ebx
jbe 0x4790e4
cmp byte [ebp + 0x6d], bl
jg 0x4790e4
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.00441183
add esp, 0x10
cmp eax, esi
jne 0x4790bf
cmp edx, edi
je 0x4790e4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x10]
call fcn.0043fe25
lea ecx, [ebp + 0x58]
call fcn.00402d2b
lea ecx, [ebp - 0x54]
call fcn.0043fe25
jmp 0x478bf6
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 0x479204
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.0044658e
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x10]
call fcn.00411019
cmp eax, ebx
jne 0x47915e
lea ecx, [ebp + 0x3c]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00402d2b
lea ecx, [ebp - 0x10]
call fcn.0043fe25
jmp 0x478be1
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 0x479198
jl 0x479179
cmp eax, ebx
ja 0x479198
mov dword [ebp + 0xc], 0x80070057
lea ecx, [ebp + 0x3c]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x479767
cmp byte [ebp + 0x6d], bl
je 0x4791f1
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 0x4791bf
jg 0x4791b9
cmp esi, dword [ebp + 0x4c]
jbe 0x4791bf
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
cmp edx, ecx
jl 0x4791cd
jg 0x4791c9
cmp esi, eax
jbe 0x4791cd
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x479180
jg 0x4791d7
cmp esi, ebx
jbe 0x479180
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.004147ef
add esp, 0xc
jmp 0x479180
lea ecx, [ebp + 0x3c]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x4792d9
cmp byte [ebp + 0x5f], bl
jg 0x4792d9
lea eax, [ebp - 0x10]
push eax
call fcn.0044de51
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.00405c6d
cmp dword [ebp + 0x40], ebx
jne 0x47926f
push ebx
push 0x2000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
call fcn.00405c6d
cmp dword [ebp + 0x40], ebx
jne 0x47926f
lea ecx, [ebp + 0x40]
call fcn.00402d2b
jmp 0x478ecb
cmp dword [ebp - 0xc], ebx
je 0x47929a
push 0x200
push dword [ebp + 0x40]
call fcn.004438ac
cmp dword [ebp - 0xc], ebx
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
jle 0x47929a
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 0x4792d9
jg 0x4792ae
cmp ecx, ebx
jbe 0x4792d9
push ebx
push eax
push ecx
push dword [ebp + 0x40]
call fcn.00441183
add esp, 0x10
cmp eax, edi
jne 0x4792c4
cmp edx, esi
je 0x4792d9
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x40]
mov ebx, eax
call fcn.00402d2b
jmp 0x4790c7
cmp dword [ebp - 0x1c], ebx
jle 0x47930d
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.004b4580
push edi
push esi
push edx
push eax
call fcn.004b4630
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x479319
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 0x479347
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.004b4580
push edi
push esi
push edx
push eax
call fcn.004b4630
jmp 0x47934d
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 0x47935d
cmp edx, dword [ebp + 0x48]
je 0x479367
add eax, dword [ebp + 0x44]
mov ecx, edx
adc ecx, dword [ebp + 0x48]
jmp 0x479369
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 0x47938e
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.00446437
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.004b4520
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 0x479437
jg 0x4793de
cmp dword [ebp + 0x18], ebx
jbe 0x479437
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 0x479427
jl 0x47941b
cmp dword [ebp + 0x4c], ebx
jae 0x479427
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.004147ef
add esp, 0xc
cmp dword [ebp - 0x24], ebx
jl 0x4794b2
jg 0x479443
cmp dword [ebp - 0x28], ebx
jbe 0x4794b2
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.00441183
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.004147ef
push dword [ebp - 0x28]
push esi
push dword [ebp + 0x3c]
call fcn.004147ef
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.00441183
add esp, 0x28
cmp byte [ebp + 0x21], bl
je 0x4794b2
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x5e], 1
jg 0x479664
jl 0x4794ca
cmp dword [ebp + 0x60], ebx
ja 0x479664
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x47966f
jg 0x4794e0
cmp dword [ebp + 0x4c], ebx
jbe 0x47966f
cmp byte [ebp + 0x5e], bl
je 0x47966f
cmp byte [ebp + 0x6e], bl
je 0x4795ff
mov esi, dword [ebp - 0x44]
cmp esi, eax
jg 0x479508
jl 0x479503
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp + 0x4c]
ja 0x479508
mov ecx, dword [ebp - 0x48]
jmp 0x47950d
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 0x47952f
jg 0x479523
cmp edx, dword [ebp + 4]
jbe 0x47952f
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 0x479555
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 0x47955a
mov edi, ecx
mov dword [ebp - 0x30], esi
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x34], edi
je 0x4795b5
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 0x479580
jg 0x47957a
cmp esi, dword [ebp - 0x34]
jbe 0x479580
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x4795a7
jg 0x47958c
cmp dword [ebp - 0x34], ebx
jbe 0x4795a7
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.004147ef
add esp, 0xc
add dword [ebp - 0x5c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
adc dword [ebp - 0x58], edi
jmp 0x4795d9
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 0x47966f
jg 0x4795eb
cmp esi, ebx
jbe 0x47966f
cmp edi, dword [ebp + 0x50]
jl 0x479649
jg 0x4795f7
cmp esi, dword [ebp + 0x4c]
jbe 0x479649
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x50]
jmp 0x479643
cmp dword [ebp + 0x48], eax
jg 0x479616
jl 0x47960e
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x4c]
ja 0x479616
mov esi, dword [ebp + 0x44]
mov edi, dword [ebp + 0x48]
jmp 0x47961b
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 0x479649
jg 0x479637
cmp ecx, dword [ebp + 4]
jbe 0x479649
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 0x479658
cmp dword [ebp + 0x50], 0x7fffffff
je 0x47965e
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 0x47996a
cmp dword [ebp + 0x64], ebx
jl 0x4799bf
jg 0x479683
cmp dword [ebp + 0x60], ebx
jbe 0x4799bf
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 0x4796ab
jl 0x4796a0
mov edx, dword [ebp + 0x44]
cmp edx, dword [ebp + 0x60]
ja 0x4796ab
mov ecx, dword [ebp + 0x44]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
jmp 0x4796b4
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 0x4796d5
mov eax, dword [ebp - 0x20]
cdq
push edx
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004b6920
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jmp 0x4796db
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 0x47977c
jg 0x4796fa
cmp edi, ebx
jbe 0x47977c
cmp byte [ebp + 0x6d], bl
je 0x479722
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push edi
push dword [ebp - 0x24]
add ecx, eax
push ecx
call fcn.004147ef
add esp, 0xc
add dword [ebp + 0x10], edi
mov dword [ebp + 0x24], edi
adc dword [ebp + 0x14], esi
jmp 0x47990e
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.00444bf0
add esp, 0x14
test eax, eax
jne 0x47990e
cmp byte [ebp + 0x56], bl
jne 0x47987f
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x47975c
xor eax, eax
inc eax
mov dword [ebp + 0xc], eax
lea ecx, [ebp + 0x2c]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.00402d2b
lea ecx, [ebp - 0x10]
call fcn.0043fe25
jmp 0x479f29
cmp dword [ebp + 0x1c], ebx
jl 0x47983f
jg 0x479790
cmp dword [ebp + 0x18], ebx
jbe 0x47983f
push dword [ebp - 0x20]
push ebx
push dword [ebp + 0xc]
call fcn.004b4520
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.00441183
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.004147ef
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.00441183
mov edi, dword [ebp - 0x78]
add esp, 0x1c
cmp byte [ebp + 0x21], bl
je 0x47983f
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x24], ebx
jl 0x479947
jg 0x479856
cmp dword [ebp + 0x34], ebx
jbe 0x479947
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 0x479947
cmp byte [ebp + 0x56], bl
je 0x4799b8
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.00402d2b
push ebx
push ebx
push 4
push ebx
push ebx
mov esi, 0xc0000000
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c6d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x4798ea
push ebx
push ebx
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c6d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x4798ea
push ebx
mov eax, 0x2000000
push eax
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c6d
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.00444bf0
add esp, 0x14
test eax, eax
je 0x479749
cmp byte [ebp + 0x57], 2
je 0x479947
cmp dword [ebp + 0x24], edi
jbe 0x479916
mov dword [ebp + 0x24], edi
cmp byte [ebp + 0x6f], bl
je 0x47992d
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004b4520
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 0x47977c
cmp byte [ebp + 0x6f], bl
je 0x47995e
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004b4520
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 0x47968c
jl 0x479984
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x60], eax
jae 0x47968c
cmp dword [ebp + 0x64], ebx
jl 0x4794ca
jg 0x479998
cmp dword [ebp + 0x60], ebx
jbe 0x4794ca
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x24]
je 0x4794ca
push dword [ebp + 0x60]
push dword [ebp - 0x24]
push eax
call fcn.004147ef
add esp, 0xc
jmp 0x4794ca
mov dword [ebp - 0x60], 1
cmp dword [ebp - 0x60], ebx
jne 0x47974f
cmp dword [ebp + 0x50], ebx
jl 0x4799eb
jg 0x4799d4
cmp dword [ebp + 0x4c], ebx
jbe 0x4799eb
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x47974f
cmp dword [ebp + 0x50], 0x7fffffff
jne 0x47974f
mov dword [ebp + 0xc], ebx
jmp 0x47975f
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x47976f
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0x68]
call fcn.00441183
add esp, 0x10
jmp 0x47976f
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 0x479b9d
cmp dword [ebp - 0x1c], 0x11
jne 0x479a73
lea eax, [ebp - 0x48]
push eax
push ebx
push dword [ebp + 0x68]
call fcn.00457c2a
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jg 0x479add
jl 0x479a5e
cmp eax, ebx
jae 0x479add
lea ecx, [ebp + 0x58]
call fcn.00402d2b
lea ecx, [ebp - 0x54]
call fcn.0043fe25
jmp 0x4787d8
cmp dword [ebp + 0x68], ebx
je 0x479ae3
cmp dword [ebp - 0x1c], ebx
jne 0x479ab8
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.00441183
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 0x479ae3
jl 0x479aa8
cmp edi, ecx
jae 0x479ae3
cmp dword [ebp + 0x3c], ebx
jne 0x479ae3
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x479ae3
push dword [ebp - 0x1c]
push dword [ebp + 0x68]
call fcn.00444b49
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x479ae3
jl 0x479ad3
cmp edi, ebx
jae 0x479ae3
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x479ae3
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
cmp byte [ebp - 0x2c], bl
je 0x479b0e
cmp dword [ebp + 0x60], 0xfffffffc
jne 0x479b0e
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 0x479b0e
jl 0x479b08
cmp ecx, ebx
jae 0x479b0e
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x68], ebx
jne 0x479b7b
cmp dword [ebp - 0x1c], ebx
jne 0x479b6e
cmp byte [ebp + 0x6e], bl
je 0x479b2e
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp]
call fcn.0044daf3
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c6d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x479b85
push ebx
push 0x2000000
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c6d
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x479b85
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x4790cf
cmp byte [ebp + 0x6f], bl
je 0x479b8d
cmp dword [ebp - 0x1c], ebx
jne 0x479b92
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp dword [ebp - 0x1c], ebx
je 0x479b9d
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 0x479bfd
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.00441183
add esp, 0x10
cmp edx, ebx
jg 0x479bfd
jl 0x479be8
cmp eax, ebx
jae 0x479bfd
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.0043fe25
jmp 0x4790cf
cmp byte [ebp - 0x29], bl
je 0x479c5a
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x44]
jl 0x479c1a
jg 0x479c14
cmp eax, dword [ebp + 0x18]
jbe 0x479c1a
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
cmp byte [ebp + 0x6d], bl
je 0x479c39
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x40]
push dword [ebp - 0xc]
add ecx, eax
push ecx
call fcn.004147ef
add esp, 0xc
jmp 0x479f13
cmp ecx, ebx
jl 0x479f13
jg 0x479c4b
cmp eax, ebx
jbe 0x479f13
push dword [ebp + 0x2c]
movzx edx, word [ebp + 0x30]
push edx
push ecx
push eax
push dword [ebp - 0xc]
jmp 0x479cc7
mov ecx, dword [ebp + 0x64]
cmp ecx, ebx
jl 0x479c7c
mov eax, dword [ebp + 0x60]
jg 0x479c6a
cmp eax, ebx
jb 0x479c7c
cmp ecx, dword [ebp + 0x48]
jg 0x479c7c
jl 0x479c76
cmp eax, dword [ebp + 0x44]
jae 0x479c7c
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 0x479cd7
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x3c]
call fcn.00446516
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x48]
jl 0x479caf
jg 0x479cac
cmp eax, dword [ebp + 0x44]
jbe 0x479caf
mov ecx, dword [ebp + 0x44]
cmp ecx, ebx
jle 0x479f13
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.00457de1
add esp, 0x18
jmp 0x479f13
mov esi, dword [ebp - 0x20]
lea eax, [esi + esi]
push eax
lea ecx, [ebp - 0x60]
call fcn.00446437
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 0x479f0b
jle 0x479f02
cmp dword [ebp + 0x38], ebx
jg 0x479d31
jl 0x479d25
cmp dword [ebp + 0x34], ebx
ja 0x479d31
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x479f0b
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
jle 0x479f0b
cmp dword [ebp + 0x48], ebx
jl 0x479eaa
jg 0x479d51
cmp dword [ebp + 0x44], ebx
jbe 0x479eaa
cmp dword [ebp + 0x38], ebx
jg 0x479e84
jl 0x479d65
cmp dword [ebp + 0x34], ebx
ja 0x479e84
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x479eaa
lea eax, [ebp + 0x78]
push eax
call fcn.0043fe57
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 0x479de5
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.00453c1f
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x479de5
cmp si, 0x2a
je 0x479e7e
cmp si, 0x28
je 0x479e0d
cmp si, 0x30
jb 0x479dcc
cmp si, 0x39
jbe 0x479ded
cmp byte [ebp + 0x6e], bl
je 0x479de0
or esi, 0x20
cmp si, 0x61
jb 0x479de0
cmp si, 0x7a
jbe 0x479ded
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov si, word [eax]
cmp si, bx
jne 0x479db0
cmp word [eax], 0x30
jne 0x479e24
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x479e24
add eax, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], eax
jmp 0x479e29
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
call fcn.00453c1f
pop ecx
pop ecx
jmp 0x479e7e
cmp byte [ebp + 0x6e], bl
je 0x479e62
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.004472b7
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.00414d24
add esp, 0x10
test al, al
jne 0x479e76
mov al, byte [ebp - 0x2a]
mov byte [ebp + 0x6e], al
jmp 0x479e76
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00453e89
cmp eax, 1
pop ecx
pop ecx
jl 0x479eaa
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x40]
je 0x479eaa
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 0x479d3d
mov esi, dword [ebp - 4]
cmp esi, ebx
jle 0x479f0b
cmp byte [ebp + 0x6d], bl
je 0x479ed4
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push esi
add ecx, eax
push edi
push ecx
call fcn.004147ef
mov eax, esi
cdq
add esp, 0xc
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp 0x479eed
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.00457de1
add esp, 0x18
cmp dword [ebp + 0x48], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0xc], 0x200
jg 0x479d19
jl 0x479f0b
cmp dword [ebp + 0x44], ebx
ja 0x479d19
lea ecx, [ebp - 0x60]
call fcn.0043fe25
cmp dword [ebp + 0x68], ebx
je 0x479f21
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.0043fe25
cmp byte [ebp + 0x55], bl
je 0x479f3c
cmp dword [ebp + 0x68], ebx
je 0x479f3c
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp byte [ebp - 5], bl
je 0x479f89
cmp dword [ebp + 0x68], ebx
je 0x479f89
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 0x479f89
push ebx
push 0x4e3234
push str.Kernel32.DLL
push str.SetFileValidData
call fcn.0044131f
mov eax, dword [0x4e3234]
add esp, 0x10
cmp eax, ebx
je 0x479f89
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x68]
call eax
lea ecx, [ebp + 0x58]
call fcn.00402d2b
lea ecx, [ebp - 0x54]
call fcn.0043fe25
mov ebx, dword [ebp + 0xc]
jmp 0x478bf6