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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x110
push ebx
push esi
push edi
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0x88]
xor ebx, ebx
push eax
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x88], ebx
call fcn.00446c3d
push 1
push 2
push str.SeBackupPrivilege
call fcn.00412301
push 0x10
push 2
push str.SeRestorePrivilege
call fcn.00412301
mov edx, dword [ebp + 0x78]
add esp, 0x20
mov byte [ebp + 0x6f], bl
mov byte [ebp + 0x4a], bl
mov byte [ebp + 0x4b], bl
mov byte [ebp - 0x32], bl
mov byte [ebp + 0x6d], bl
mov byte [ebp - 0xd], bl
mov byte [ebp + 0x6e], bl
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x2c], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x84], ebx
xor ecx, ecx
jmp 0x469af7
mov eax, ecx
call fcn.0040ea2b
test al, al
jne 0x469aff
cmp cx, 0x2a
jne 0x469ada
mov al, byte [edx]
mov byte [ebp + 0x6f], al
jmp 0x469af2
cmp cx, 0x2e
jne 0x469ae7
mov al, byte [edx]
mov byte [ebp + 0x4a], al
jmp 0x469af2
cmp cx, 0x23
jne 0x469af2
mov al, byte [edx]
mov byte [ebp + 0x4b], al
inc edx
inc edx
mov dword [ebp + 0x78], edx
mov cx, word [edx]
cmp cx, bx
jne 0x469ac2
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x48], esi
call fcn.0043fd9a
cmp word [esi], 0x2d
jne 0x469b67
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x469b4c
mov eax, ecx
call fcn.0040ea2b
test al, al
jne 0x469b4c
cmp cx, 0x2c
je 0x469b4c
lea eax, [ebp - 0x48]
push eax
call fcn.00405444
mov esi, dword [ebp - 0x48]
cmp word [esi], 0x2d
pop ecx
je 0x469b1d
cmp esi, dword [ebp + 0x78]
je 0x469b67
mov ecx, dword [ebp + 0x1c]
push 1
push ebx
lea eax, [ebp - 0x78]
push eax
mov word [esi - 2], bx
push dword [ebp + 0x78]
call fcn.0044ed7d
mov eax, dword [ebp - 0x78]
push 1
lea ecx, [ebp - 8]
mov dword [ebp + 0x78], eax
call fcn.0043fdb8
or edi, 0xffffffff
mov eax, 0x200
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], 0x7fffffff
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x30], ebx
mov byte [ebp - 0x31], bl
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ebx
mov byte [ebp - 0x33], bl
mov byte [ebp + 0x1b], bl
mov byte [ebp + 0x23], bl
mov dword [ebp + 0x2c], ebx
jmp 0x469d99
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b8dbc
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x469bea
mov byte [ebp - 0x32], 1
jmp 0x469d99
push 4
lea eax, [ebp + 0x78]
push eax
push str._dir
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x469c0d
mov dword [ebp - 0x2c], 0x80000000
jmp 0x469d99
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.00441c77
add esp, 0xc
test al, al
jne 0x469dab
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b8db0
call fcn.00441c77
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x469ce7
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp - 4], esi
call fcn.00405444
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp - 0x14], ebx
jne 0x469c95
inc esi
inc esi
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 4], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp - 0xc], esi
call fcn.0040549b
mov eax, dword [ebp - 0xc]
cmp word [eax], bx
pop ecx
je 0x469c82
mov word [eax], bx
mov ecx, dword [ebp + 0x1c]
push ebx
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0x2c]
call fcn.00446dde
mov dword [ebp - 4], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 4]
push eax
call fcn.0043c462
mov eax, dword [ebp - 0x74]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x469cd7
cmp eax, ebx
je 0x469cd7
lea ecx, [ebp - 0x84]
push ecx
push eax
mov dword [ebp + 0x2c], ebx
call fcn.0043a1f7
test eax, eax
pop ecx
pop ecx
je 0x469cd7
mov eax, dword [ebp - 0x84]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x469cd7
mov dword [ebp + 0x3c], esi
lea ecx, [ebp - 0x14]
call fcn.00439cfd
mov esi, dword [ebp - 0x48]
jmp 0x469d99
push 3
push eax
push 0x4b8dac
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x469d04
mov byte [ebp - 0xd], 1
jmp 0x469d99
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4b749c
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x469d21
mov byte [ebp + 0x6d], 1
jmp 0x469d99
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x469d3e
mov byte [ebp + 0x6e], 1
jmp 0x469d99
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x469d5b
mov byte [ebp + 0x23], 1
jmp 0x469d99
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b8da0
call fcn.00441bc4
add esp, 0xc
test al, al
jne 0x469df0
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4b1e78
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x469d8f
mov byte [ebp + 0x5e], 1
jmp 0x469d99
lea eax, [ebp + 0x78]
push eax
call fcn.00405444
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x469bca
jmp 0x46a129
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x28], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00405444
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp + 0x28]
push eax
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
call fcn.0043c462
add esp, 0xc
cmp dword [ebp - 0x50], edi
je 0x46a6cb
cmp dword [ebp - 0x50], ebx
je 0x46a6cb
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x46a6cb
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x1b], 1
mov byte [ebp + 0x6f], 1
jne 0x46a129
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x46a0f6
mov eax, ecx
call fcn.0040ea2b
test al, al
jne 0x46a0f6
cmp cx, 0x2c
je 0x46a0f6
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
call fcn.00405444
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.0043af58
add esp, 0x10
test al, al
je 0x469e8b
add dword [ebp + 0x78], 8
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], ebx
call fcn.0044b318
test eax, eax
pop ecx
pop ecx
jle 0x46a0e6
mov eax, dword [ebp + 0x24]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
jmp 0x46a0e6
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.0043af58
add esp, 0xc
test al, al
je 0x469ec8
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], ebx
call fcn.0044b318
test eax, eax
pop ecx
pop ecx
jle 0x46a0e6
mov eax, dword [ebp + 0x24]
cdq
jmp 0x469e80
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.0043af58
add esp, 0xc
test al, al
je 0x469f0e
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], ebx
call fcn.0044b318
test eax, eax
pop ecx
pop ecx
jle 0x46a0e6
mov eax, dword [ebp + 0x24]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jmp 0x46a0e6
push 7
push dword [ebp + 0x78]
push str._count
call fcn.0043af58
add esp, 0xc
test al, al
je 0x469f56
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], ebx
call fcn.0044b318
test eax, eax
pop ecx
pop ecx
jle 0x46a0e6
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x44], eax
jmp 0x46a0e6
push 5
push dword [ebp + 0x78]
push str._len
call fcn.0043af58
add esp, 0xc
test al, al
je 0x469f9e
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], ebx
call fcn.0044b318
test eax, eax
pop ecx
pop ecx
jle 0x46a0e6
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x50], eax
jmp 0x46a0e6
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.0043af58
add esp, 0xc
test al, al
je 0x469fdb
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.0043af58
add esp, 0xc
test al, al
je 0x46a0e6
mov byte [ebp - 0x33], 1
jmp 0x46a0e6
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.0043af58
add esp, 0xc
test al, al
je 0x46a029
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp], edi
mov dword [ebp + 4], edi
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], ebx
call fcn.0044b318
test eax, eax
pop ecx
pop ecx
jle 0x46a0e6
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x60], eax
jmp 0x46a0e6
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.0043af58
add esp, 0xc
test al, al
je 0x46a074
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], ebx
call fcn.0044b318
test eax, eax
pop ecx
pop ecx
jle 0x46a0e6
mov eax, dword [ebp + 0x24]
mov dword [ebp], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp + 4], eax
jmp 0x46a0e6
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x46a091
mov byte [ebp + 0x6e], 1
jmp 0x46a0e6
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x46a0ae
mov byte [ebp + 0x23], 1
jmp 0x46a0e6
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x46a0cb
mov byte [ebp + 0x23], 0x10
jmp 0x46a0e6
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b8dac
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x46a0e6
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x469e05
cmp dword [ebp + 4], ebx
jg 0x46a129
jl 0x46a102
cmp dword [ebp], ebx
jae 0x46a129
push dword [ebp - 0x60]
push dword [ebp - 0x64]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.0049a8f0
cmp edx, ebx
mov dword [ebp], eax
mov dword [ebp + 4], edx
jg 0x46a129
jl 0x46a123
cmp eax, ebx
jae 0x46a129
mov dword [ebp], ebx
mov dword [ebp + 4], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x46a144
mov byte [ebp + 0x23], 1
mov ecx, dword [ebp + 0x1c]
push ebx
push 0x2c
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], esi
call fcn.004350f0
cmp word [eax], 0x2c
jne 0x46a6c6
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, bx
je 0x46a6c6
cmp ax, 0x26
jne 0x46a17d
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x46a185
mov byte [ebp + 0x6f], bl
mov ecx, dword [ebp + 0x1c]
push 1
push ebx
lea eax, [ebp - 0x78]
push eax
push dword [ebp + 0x78]
call fcn.0044ed7d
mov eax, dword [ebp - 0x78]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044b318
cmp dword [ebp + 0xc], ebx
pop ecx
pop ecx
jg 0x46a1c0
jl 0x46a6c6
cmp dword [ebp + 8], ebx
jb 0x46a6c6
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x23
mov dword [ebp + 0x60], 0xfffffffc
mov dword [ebp + 0x64], edi
mov byte [ebp - 0x34], bl
jne 0x46a1fe
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
sete byte [ebp - 0x34]
call fcn.0044b318
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.0043a11e
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x46a21a
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x46a240
jg 0x46a228
cmp dword [ebp + 0x4c], ebx
jb 0x46a240
cmp dword [ebp + 0x64], eax
jl 0x46a240
jg 0x46a237
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x4c]
jbe 0x46a240
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
push dword [ebp + 0x78]
call fcn.0040ff04
mov esi, dword [ebp + 0x78]
push esi
push str.zero
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
call fcn.0043af97
add esp, 0x10
cmp al, bl
mov byte [ebp + 0x22], al
jne 0x46a2a6
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.00442f35
test eax, eax
pop ecx
pop ecx
je 0x46a2a6
mov eax, dword [ebp - 0xc]
mov ax, word [eax]
cmp ax, bx
je 0x46a296
cmp ax, 0x2c
jne 0x46a2a6
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x28]
mov byte [ebp + 0x22], 2
mov dword [ebp - 0x70], eax
cmp word [esi], bx
mov edi, esi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], esi
jne 0x46a2bb
xor ebx, ebx
inc ebx
jmp 0x46a6cb
lea eax, [ebp - 0xc]
push 1
push eax
mov dword [ebp - 0xc], esi
call fcn.00446b69
pop ecx
pop ecx
lea ecx, [ebp - 0x5c]
mov esi, eax
call fcn.0043fc26
cmp byte [ebp + 0x4b], bl
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp + 0x5f], bl
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
je 0x46a43e
mov esi, 0x4c9c14
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp - 4]
call fcn.0043fd9a
mov ecx, dword [ebp + 0x1c]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.0040fd4e
cmp eax, ebx
mov dword [ebp + 0x28], eax
jne 0x46a329
lea ecx, [ebp - 4]
call fcn.00439cfd
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46a6be
mov edx, dword [ebp + 0x64]
cmp edx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x44], eax
jl 0x46a354
mov esi, dword [ebp + 0x60]
jg 0x46a33f
cmp esi, ebx
jbe 0x46a354
mov ecx, esi
add ecx, dword [ebp]
mov eax, edx
adc eax, dword [ebp + 4]
cmp eax, ebx
jl 0x46a379
jg 0x46a354
cmp ecx, dword [ebp - 0x44]
jbe 0x46a379
mov esi, dword [ebp - 0x44]
sub esi, dword [ebp]
mov edx, ebx
sbb edx, dword [ebp + 4]
mov dword [ebp + 0x60], esi
cmp edx, ebx
mov dword [ebp + 0x64], edx
jg 0x46a379
jl 0x46a36f
cmp esi, ebx
ja 0x46a379
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 0x46a39b
jg 0x46a387
cmp dword [ebp + 0x4c], ebx
jb 0x46a39b
cmp eax, edx
jg 0x46a39b
jl 0x46a392
cmp dword [ebp + 0x4c], esi
jae 0x46a39b
mov esi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x64], eax
lea eax, [esi + 0x200000]
push eax
lea ecx, [ebp - 0x5c]
call fcn.0043fc68
mov edi, dword [ebp - 0x5c]
cmp edi, ebx
jne 0x46a3c9
lea ecx, [ebp - 4]
call fcn.00439cfd
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46b541
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + 4]
add edi, 0x100000
and edi, 0xfff00000
cmp dword [ebp + 4], ebx
mov dword [ebp - 0x14], edi
jl 0x46a3f6
jg 0x46a3ed
mov eax, dword [ebp]
cmp eax, dword [ebp - 0x44]
jbe 0x46a3f6
mov eax, dword [ebp - 0x44]
mov dword [ebp], eax
mov dword [ebp + 4], ebx
add ecx, dword [ebp]
mov eax, esi
cdq
cmp edx, ebx
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
jl 0x46a41e
jg 0x46a40f
cmp eax, ebx
jbe 0x46a41e
cmp edi, ecx
je 0x46a41e
push esi
push ecx
push edi
call fcn.004131b9
add esp, 0xc
lea ecx, [ebp - 4]
mov byte [ebp + 0x5f], 1
mov byte [ebp - 0x31], 1
call fcn.00439cfd
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46a613
cmp esi, ebx
je 0x46a613
lea eax, [esi + 2]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x90], 0x20
cmp word [eax], 0x2e
mov byte [ebp - 0x31], 2
mov byte [ebp + 0x5f], 2
jne 0x46a479
inc eax
inc eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x90], 0x40
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.00446ab7
pop ecx
pop ecx
mov cx, word [esi]
mov dword [ebp - 0x68], eax
mov eax, dword [0x4c8f04]
mov word [ebp + 0x28], cx
mov ecx, dword [ebp - 0xc]
mov word [esi], bx
mov dx, word [ecx]
cmp dx, 0x2e
mov dword [ebp - 4], ebx
jne 0x46a4b9
cmp word [ecx + 2], bx
jne 0x46a4b9
mov eax, dword [0x4c8c2c]
jmp 0x46a4cb
cmp dx, bx
je 0x46a4cb
push 2
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 4], eax
cmp eax, ebx
mov cx, word [ebp + 0x28]
mov word [esi], cx
je 0x46a4f2
lea ecx, [ebp - 0x90]
push ecx
lea ecx, [ebp - 0x5c]
push ecx
push dword [ebp - 0x68]
push dword [ebp + 0x30]
push eax
call fcn.00414150
add esp, 0x14
mov edi, eax
cmp dword [ebp - 4], ebx
je 0x46a500
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp edi, ebx
je 0x46b541
cmp dword [ebp + 0x64], ebx
mov eax, dword [ebp - 0x58]
cdq
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
jl 0x46a53a
jg 0x46a51e
cmp dword [ebp + 0x60], ebx
jbe 0x46a53a
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x64]
mov ecx, edi
add ecx, dword [ebp]
mov eax, esi
adc eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x1c]
jl 0x46a560
jg 0x46a53a
cmp ecx, dword [ebp - 0x20]
jbe 0x46a560
mov edi, dword [ebp - 0x20]
sub edi, dword [ebp]
mov esi, dword [ebp - 0x1c]
sbb esi, dword [ebp + 4]
mov dword [ebp + 0x60], edi
cmp esi, ebx
mov dword [ebp + 0x64], esi
jg 0x46a560
jl 0x46a556
cmp edi, ebx
ja 0x46a560
xor edi, edi
xor esi, esi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], esi
mov eax, dword [ebp - 0x58]
add eax, 0x200000
push eax
lea ecx, [ebp - 0x5c]
call fcn.0043fc68
mov eax, dword [ebp - 0x5c]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x46b541
mov ecx, dword [ebp - 0x20]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.0049a7e0
mov eax, dword [ebp - 0x1c]
add esp, 0xc
cmp dword [ebp + 4], eax
jl 0x46a5b1
jg 0x46a5a5
mov eax, dword [ebp]
cmp eax, dword [ebp - 0x20]
jbe 0x46a5b1
mov eax, dword [ebp - 0x20]
mov dword [ebp], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 4], eax
mov eax, dword [ebp]
add dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x46a5d9
jg 0x46a5c5
cmp dword [ebp + 0x4c], ebx
jb 0x46a5d9
cmp eax, esi
jg 0x46a5d9
jl 0x46a5d0
cmp dword [ebp + 0x4c], edi
jae 0x46a5d9
mov edi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], eax
mov eax, edi
mov dword [ebp - 0x58], edi
mov edi, dword [ebp + 0x30]
cdq
add edi, 0x100000
and edi, 0xfff00000
cmp edx, ebx
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
mov dword [ebp - 0x14], edi
jl 0x46a613
jg 0x46a601
cmp eax, ebx
jbe 0x46a613
cmp edi, dword [ebp + 0x30]
je 0x46a613
push eax
push dword [ebp + 0x30]
push edi
call fcn.004131b9
add esp, 0xc
cmp byte [ebp - 0xd], bl
mov esi, dword [ebp + 0x3c]
mov byte [ebp + 0x4b], bl
mov dword [ebp - 4], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x68], esi
je 0x46a638
push 0x40
push 2
push str.SeManageVolumePrivilege
call fcn.00412301
add esp, 0xc
cmp esi, ebx
mov eax, 0x200
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov byte [ebp + 0x57], 1
je 0x46a65a
mov byte [ebp + 0x57], bl
cmp byte [ebp + 0x1b], bl
je 0x46a66f
cmp byte [ebp - 0x33], bl
sete byte [ebp + 0x4b]
cmp byte [ebp + 0x5f], bl
jne 0x46a66f
mov byte [ebp + 0x1b], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x46a780
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x2c]
call fcn.0043fd9a
mov ecx, dword [ebp + 0x1c]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 8]
call fcn.0040fd4e
cmp eax, ebx
jne 0x46a6fd
lea ecx, [ebp + 0x2c]
call fcn.00439cfd
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x58]
call fcn.00402c5b
lea ecx, [ebp - 0x5c]
call fcn.00439cfd
mov ebx, 0x80070057
lea ecx, [ebp - 8]
call fcn.00439cfd
lea ecx, [ebp - 0x78]
call fcn.00439cfd
lea ecx, [ebp - 0x84]
call fcn.00402c5b
lea ecx, [ebp - 0x88]
call fcn.00439cfd
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 - 0x48], edx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], eax
jg 0x46a718
jl 0x46a6a3
cmp ecx, ebx
jbe 0x46a6a3
cmp byte [ebp + 0x5f], bl
je 0x46a768
mov esi, dword [ebp + 8]
sub ecx, esi
sbb eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x64]
jl 0x46a737
jg 0x46a731
cmp ecx, dword [ebp + 0x60]
jbe 0x46a737
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x46a750
jg 0x46a741
cmp ecx, ebx
jbe 0x46a750
push dword [ebp + 0x10]
add esi, edx
push edi
push esi
call fcn.004131b9
add esp, 0xc
lea ecx, [ebp + 0x2c]
call fcn.00439cfd
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46b9fb
lea ecx, [ebp + 0x2c]
call fcn.00439cfd
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46a8e3
cmp byte [ebp + 0x5e], bl
je 0x46a78a
mov dword [ebp - 0x24], ebx
jmp 0x46a7a7
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 8]
push eax
call fcn.0044635b
movsx eax, al
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x24], eax
jl 0x46a6b6
cmp byte [ebp + 0x6f], bl
mov ecx, dword [ebp - 8]
jne 0x46a7f3
cmp dword [ebp - 0x24], ebx
jne 0x46a7eb
cmp word [ecx], 0x5c
jne 0x46a7eb
cmp word [ecx + 2], 0x5c
jne 0x46a7eb
mov ax, word [ecx + 4]
cmp ax, 0x3f
je 0x46a7d1
cmp ax, 0x2e
jne 0x46a7eb
cmp word [ecx + 6], 0x5c
jne 0x46a7eb
cmp ax, 0x3f
jne 0x46a7f3
cmp word [ecx + 8], ax
jne 0x46a7f3
cmp word [ecx + 0xa], 0x3a
jne 0x46a7f3
mov edi, dword [ebp - 0x2c]
mov byte [ebp + 0x5e], bl
jmp 0x46a82f
cmp byte [ebp + 0x6f], bl
mov byte [ebp + 0x5e], 1
jne 0x46a80d
push ebx
push ecx
call fcn.0049a0d4
test eax, eax
pop ecx
pop ecx
je 0x46a80d
mov byte [ebp + 0x6f], 0x20
cmp dword [ebp + 0x3c], ebx
mov edi, dword [ebp - 0x2c]
jne 0x46a853
push ebx
push ebx
push 4
push ebx
push 7
mov eax, edi
or eax, esi
push eax
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x46a84e
push ebx
push ebx
push 3
push ebx
push 3
mov eax, edi
or eax, esi
push eax
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x5e], bl
je 0x46a880
cmp byte [ebp + 0x1b], bl
je 0x46a880
cmp dword [ebp - 0x24], ebx
jg 0x46a880
cmp dword [ebp + 0x68], ebx
jne 0x46a8a1
push ebx
push 0x2000000
push 4
push ebx
push 3
mov eax, edi
or eax, esi
push eax
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x46a8a1
push ebx
push 0x2000000
push 3
push ebx
push 3
or edi, esi
push edi
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x2c], ebx
je 0x46a8bf
cmp dword [ebp + 0x58], ebx
je 0x46a8bf
push dword [ebp + 0x2c]
push dword [ebp + 0x58]
push dword [ebp + 0x1c]
call fcn.0044846b
add esp, 0xc
mov dword [ebp + 0x58], ebx
cmp dword [ebp - 0x24], ebx
je 0x46a8e3
cmp dword [ebp + 0x68], ebx
je 0x46a8e3
mov edi, 0x200
push edi
push dword [ebp + 0x68]
call fcn.0043d51a
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x28], eax
jge 0x46a8e3
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
and eax, dword [ebp - 0x28]
cmp byte [ebp + 0x1b], 2
mov dword [ebp + 0x28], eax
jne 0x46b4f1
cmp dword [ebp + 0x38], ebx
jl 0x46a6b6
mov edi, dword [ebp + 0x34]
jg 0x46a910
cmp edi, ebx
jbe 0x46a6b6
cmp dword [ebp - 0x38], ebx
jl 0x46a6b6
jg 0x46a924
cmp dword [ebp - 0x3c], ebx
jbe 0x46a6b6
cmp dword [ebp + 0x50], ebx
jl 0x46a953
jg 0x46a930
cmp dword [ebp + 0x4c], ebx
jb 0x46a953
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.0049a840
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], edx
jmp 0x46a981
cmp dword [ebp + 0x40], 0xffffffff
jne 0x46a96c
mov eax, 0x7fffffff
cmp dword [ebp + 0x44], eax
jne 0x46a96c
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], eax
jmp 0x46a981
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [ebp + 0x38]
push edi
call fcn.0049a8f0
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edx
push dword [ebp - 0x18]
call fcn.00411f27
pop ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.00448399
cmp byte [ebp + 0x6d], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], eax
jg 0x46a9b3
cmp dword [ebp + 0x68], ebx
jne 0x46a9b3
lea ecx, [ebp - 0x18]
call fcn.00439cfd
jmp 0x46b539
cmp byte [ebp + 0x23], bl
je 0x46ab0e
cmp dword [ebp - 0x24], ebx
jg 0x46ab0e
cmp byte [ebp + 0x6d], bl
jg 0x46ab0e
cmp dword [ebp + 0x3c], ebx
jne 0x46a9db
lea ecx, [ebp + 0x58]
call fcn.00402c5b
cmp byte [ebp + 0x6e], bl
je 0x46a9ed
push ebx
push ebx
push dword [ebp - 8]
call fcn.00446107
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x46aa26
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x46aa2f
push ebx
push 0x2000000
push 4
push ebx
push 3
push esi
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
je 0x46a9a6
cmp byte [ebp + 0x22], bl
je 0x46ab0e
cmp dword [ebp + 0x44], ebx
jl 0x46b4ce
jg 0x46aa4c
cmp dword [ebp + 0x40], ebx
jb 0x46ab0e
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
call fcn.0049a8f0
cmp dword [ebp + 0x50], ebx
jl 0x46aa7b
jg 0x46aa69
cmp dword [ebp + 0x4c], ebx
jb 0x46aa7b
cmp edx, dword [ebp + 0x50]
jl 0x46aa7b
jg 0x46aa75
cmp eax, dword [ebp + 0x4c]
jbe 0x46aa7b
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
add eax, dword [ebp + 8]
mov esi, 0x7fffffff
adc edx, dword [ebp + 0xc]
cmp dword [ebp + 0x44], esi
mov dword [ebp - 0x44], eax
mov edi, edx
jl 0x46aaa1
jg 0x46aa98
cmp dword [ebp + 0x40], 0xffffffff
jb 0x46aaa1
mov dword [ebp - 0x44], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x4b], bl
jne 0x46aac4
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043ae64
add esp, 0x10
cmp edx, edi
jg 0x46aac4
jl 0x46aac0
cmp eax, dword [ebp - 0x44]
jae 0x46aac4
mov byte [ebp + 0x4b], 1
push ebx
push edi
push dword [ebp - 0x44]
push dword [ebp + 0x68]
call fcn.0043ae64
add esp, 0x10
cmp eax, dword [ebp - 0x44]
jne 0x46aaf3
cmp edx, edi
jne 0x46aaf3
cmp dword [ebp + 0x44], esi
jg 0x46ab0e
jl 0x46b24a
cmp dword [ebp + 0x40], 0xffffffff
jae 0x46ab0e
jmp 0x46b24a
cmp dword [ebp + 0x44], esi
jg 0x46ab0e
jl 0x46ab00
cmp dword [ebp + 0x40], 0xffffffff
jae 0x46ab0e
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043ae64
add esp, 0x10
cmp dword [ebp + 0x44], ebx
jl 0x46b4ce
jg 0x46ab22
cmp dword [ebp + 0x40], ebx
jbe 0x46b4ce
cmp dword [ebp + 0x50], ebx
jl 0x46b4ce
jg 0x46ab36
cmp dword [ebp + 0x4c], ebx
jbe 0x46b4ce
cmp byte [ebp + 0x22], bl
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
jne 0x46ab53
cmp byte [ebp + 0x5f], bl
mov byte [ebp + 0x6e], 1
je 0x46ab56
mov byte [ebp + 0x6e], bl
cmp dword [ebp - 0x24], ebx
jle 0x46ab6b
mov eax, dword [ebp + 8]
cdq
idiv dword [ebp - 0x28]
mov eax, edx
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov esi, dword [ebp + 8]
sub esi, dword [ebp - 0x30]
mov edi, dword [ebp + 0xc]
sbb edi, dword [ebp - 0x2c]
js 0x46abbf
jg 0x46ab7f
cmp esi, ebx
jbe 0x46abbf
cmp byte [ebp + 0x6d], bl
jg 0x46abbf
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.0043ae64
add esp, 0x10
cmp eax, esi
jne 0x46ab9a
cmp edx, edi
je 0x46abbf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x18]
call fcn.00439cfd
lea ecx, [ebp + 0x58]
call fcn.00402c5b
lea ecx, [ebp - 0x5c]
call fcn.00439cfd
jmp 0x46a6cb
mov eax, dword [ebp - 0x18]
cmp word [eax], 0x26
mov edi, dword [ebp]
mov esi, dword [ebp + 4]
sete byte [ebp + 0x5f]
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x60], esi
mov dword [ebp + 0x2c], ebx
je 0x46acdf
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.0043fd9a
mov ecx, dword [ebp + 0x1c]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x18]
call fcn.0040fd4e
cmp eax, ebx
jne 0x46ac39
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x2c]
call fcn.00402c5b
lea ecx, [ebp - 0x18]
call fcn.00439cfd
jmp 0x46a6b6
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xc], ecx
xor ecx, ecx
cmp ecx, ebx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ecx
jg 0x46ac73
jl 0x46ac54
cmp eax, ebx
ja 0x46ac73
mov dword [ebp - 4], 0x80070057
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46b242
cmp byte [ebp + 0x6d], bl
je 0x46accc
mov edx, dword [ebp - 0x68]
sub eax, edi
sbb ecx, esi
mov esi, dword [ebp - 0x6c]
sub esi, dword [ebp + 8]
sbb edx, dword [ebp + 0xc]
cmp edx, dword [ebp + 0x50]
jl 0x46ac9a
jg 0x46ac94
cmp esi, dword [ebp + 0x4c]
jbe 0x46ac9a
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
cmp edx, ecx
jl 0x46aca8
jg 0x46aca4
cmp esi, eax
jbe 0x46aca8
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x46ac5b
jg 0x46acb2
cmp esi, ebx
jbe 0x46ac5b
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
add edi, eax
mov eax, dword [ebp - 0x48]
push esi
add ecx, eax
push edi
push ecx
call fcn.004131b9
add esp, 0xc
jmp 0x46ac5b
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x46adb4
cmp byte [ebp + 0x5f], bl
jg 0x46adb4
lea eax, [ebp - 0x18]
push eax
call fcn.00446459
pop ecx
push ebx
push ebx
push 3
push ebx
push 3
movsx eax, al
push 0x80000000
push dword [ebp - 0x18]
lea ecx, [ebp + 0x2c]
mov dword [ebp - 0x14], eax
call fcn.004054c4
cmp dword [ebp + 0x2c], ebx
jne 0x46ad4a
push ebx
push 0x2000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x18]
lea ecx, [ebp + 0x2c]
call fcn.004054c4
cmp dword [ebp + 0x2c], ebx
jne 0x46ad4a
lea ecx, [ebp + 0x2c]
call fcn.00402c5b
jmp 0x46a9a6
cmp dword [ebp - 0x14], ebx
je 0x46ad75
push 0x200
push dword [ebp + 0x2c]
call fcn.0043d51a
cmp dword [ebp - 0x14], ebx
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
jle 0x46ad75
mov eax, edi
cdq
idiv dword [ebp + 0x30]
mov eax, edx
cdq
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
sub edi, dword [ebp + 0x10]
sbb esi, dword [ebp + 0x14]
mov ecx, edi
mov eax, esi
cmp eax, ebx
jl 0x46adb4
jg 0x46ad89
cmp ecx, ebx
jbe 0x46adb4
push ebx
push eax
push ecx
push dword [ebp + 0x2c]
call fcn.0043ae64
add esp, 0x10
cmp eax, edi
jne 0x46ad9f
cmp edx, esi
je 0x46adb4
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x2c]
mov ebx, eax
call fcn.00402c5b
jmp 0x46aba2
cmp dword [ebp - 0x24], ebx
jle 0x46ade8
mov eax, dword [ebp - 0x28]
cdq
mov esi, eax
add eax, dword [ebp - 0x3c]
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.0049a840
push edi
push esi
push edx
push eax
call fcn.0049a8f0
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], edx
jmp 0x46adf4
mov eax, dword [ebp - 0x3c]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp + 0x44], eax
cmp dword [ebp - 0x14], ebx
jle 0x46ae22
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.0049a840
push edi
push esi
push edx
push eax
call fcn.0049a8f0
jmp 0x46ae28
mov eax, dword [ebp + 0x34]
mov edx, dword [ebp + 0x38]
cmp eax, dword [ebp + 0x40]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
jne 0x46ae38
cmp edx, dword [ebp + 0x44]
je 0x46ae42
add eax, dword [ebp + 0x40]
mov ecx, edx
adc ecx, dword [ebp + 0x44]
jmp 0x46ae44
mov ecx, edx
add eax, 0x8000
adc ecx, ebx
mov esi, eax
add esi, 0x2800
mov dword [ebp], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp + 4], ecx
adc ecx, ebx
cmp dword [ebp - 0x28], eax
mov dword [ebp - 0x7c], ecx
jle 0x46ae69
mov eax, dword [ebp - 0x28]
cdq
lea edi, [esi + eax]
lea eax, [edi + 0x100000]
push eax
lea ecx, [ebp + 0x28]
mov dword [ebp - 0x7c], edx
call fcn.0043fc43
mov eax, dword [ebp + 0x28]
add eax, 0x100000
and eax, 0xfff00000
push edi
push dword [ebp - 0x74]
add esi, eax
push eax
mov dword [ebp + 0x3c], eax
mov dword [ebp - 4], esi
call fcn.0049a7e0
add esp, 0xc
cmp dword [ebp + 0x14], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp - 0x68], ebx
mov byte [ebp + 0x6f], bl
jl 0x46af12
jg 0x46aeb9
cmp dword [ebp + 0x10], ebx
jbe 0x46af12
mov edi, dword [ebp + 0x3c]
push ebx
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 0x30]
mov dword [ebp - 0x20], ebx
push edi
push dword [ebp + 0x2c]
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0x30]
cdq
sub eax, dword [ebp + 0x10]
sbb edx, dword [ebp + 0x14]
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 0x46af02
jl 0x46aef6
cmp dword [ebp + 0x4c], ebx
jae 0x46af02
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 + 0x10]
add eax, edi
push eax
push edi
call fcn.004131b9
add esp, 0xc
cmp dword [ebp - 0x2c], ebx
jl 0x46af8d
jg 0x46af1e
cmp dword [ebp - 0x30], ebx
jbe 0x46af8d
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043ae64
add esp, 0x10
push ebx
mov edi, eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x28]
mov dword [ebp - 0x7c], edx
push esi
push dword [ebp + 0x68]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp + 0x60]
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp - 0x30]
push eax
add ecx, eax
push ecx
call fcn.004131b9
push dword [ebp - 0x30]
push esi
push dword [ebp + 0x3c]
call fcn.004131b9
mov eax, dword [ebp - 0x30]
add dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x2c]
push ebx
push dword [ebp - 0x7c]
adc dword [ebp + 0x64], eax
push edi
push dword [ebp + 0x68]
call fcn.0043ae64
add esp, 0x28
cmp byte [ebp + 0x22], bl
je 0x46af8d
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x5e], 1
jg 0x46b13f
jl 0x46afa5
cmp dword [ebp + 0x60], ebx
ja 0x46b13f
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x46b14a
jg 0x46afbb
cmp dword [ebp + 0x4c], ebx
jbe 0x46b14a
cmp byte [ebp + 0x5e], bl
je 0x46b14a
cmp byte [ebp + 0x6e], bl
je 0x46b0da
mov esi, dword [ebp - 0x4c]
cmp esi, eax
jg 0x46afe3
jl 0x46afde
mov ecx, dword [ebp - 0x50]
cmp ecx, dword [ebp + 0x4c]
ja 0x46afe3
mov ecx, dword [ebp - 0x50]
jmp 0x46afe8
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 + 4]
jl 0x46b00a
jg 0x46affe
cmp edx, dword [ebp]
jbe 0x46b00a
mov ecx, dword [ebp]
sub ecx, dword [ebp + 0x60]
mov esi, dword [ebp + 4]
sbb esi, dword [ebp + 0x64]
cmp dword [ebp - 0x14], ebx
jle 0x46b030
mov eax, dword [ebp + 0x30]
cdq
mov edi, eax
mov eax, dword [ebp + 0x30]
add edi, ecx
mov dword [ebp - 0x70], edx
adc dword [ebp - 0x70], esi
dec eax
not eax
cdq
and edi, eax
mov eax, dword [ebp - 0x70]
and eax, edx
mov dword [ebp - 0x38], eax
jmp 0x46b035
mov edi, ecx
mov dword [ebp - 0x38], esi
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x3c], edi
je 0x46b090
mov esi, dword [ebp - 0x44]
sub esi, dword [ebp - 0x64]
mov edi, dword [ebp - 0x40]
sbb edi, dword [ebp - 0x60]
cmp edi, dword [ebp - 0x38]
jl 0x46b05b
jg 0x46b055
cmp esi, dword [ebp - 0x3c]
jbe 0x46b05b
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x38]
cmp dword [ebp - 0x38], ebx
jl 0x46b082
jg 0x46b067
cmp dword [ebp - 0x3c], ebx
jbe 0x46b082
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x64]
add ecx, eax
mov eax, dword [ebp + 0x60]
push esi
push ecx
mov ecx, dword [ebp + 0x3c]
add eax, ecx
push eax
call fcn.004131b9
add esp, 0xc
add dword [ebp - 0x64], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edi
adc dword [ebp - 0x60], edi
jmp 0x46b0b4
mov ecx, dword [ebp + 0x3c]
push ebx
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp + 0x60]
push edi
add eax, ecx
push eax
push dword [ebp + 0x2c]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
cmp edi, ebx
jl 0x46b14a
jg 0x46b0c6
cmp esi, ebx
jbe 0x46b14a
cmp edi, dword [ebp + 0x50]
jl 0x46b124
jg 0x46b0d2
cmp esi, dword [ebp + 0x4c]
jbe 0x46b124
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x50]
jmp 0x46b11e
cmp dword [ebp + 0x44], eax
jg 0x46b0f1
jl 0x46b0e9
mov ecx, dword [ebp + 0x40]
cmp ecx, dword [ebp + 0x4c]
ja 0x46b0f1
mov esi, dword [ebp + 0x40]
mov edi, dword [ebp + 0x44]
jmp 0x46b0f6
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 + 4]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edi
jl 0x46b124
jg 0x46b112
cmp ecx, dword [ebp]
jbe 0x46b124
mov esi, dword [ebp]
sub esi, dword [ebp + 0x60]
mov edi, dword [ebp + 4]
sbb edi, dword [ebp + 0x64]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edi
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x46b133
cmp dword [ebp + 0x50], 0x7fffffff
je 0x46b139
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 - 0x2c], eax
jmp 0x46b445
cmp dword [ebp + 0x64], ebx
jl 0x46b49a
jg 0x46b15e
cmp dword [ebp + 0x60], ebx
jbe 0x46b49a
mov eax, dword [ebp + 0x3c]
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x44]
cmp eax, ecx
jg 0x46b186
jl 0x46b17b
mov edx, dword [ebp + 0x40]
cmp edx, dword [ebp + 0x60]
ja 0x46b186
mov ecx, dword [ebp + 0x40]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
jmp 0x46b18f
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ecx
cmp dword [ebp - 0x24], ebx
mov dword [ebp + 0x1c], ebx
jle 0x46b1b0
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.0049cbd0
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
jmp 0x46b1b6
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
mov edi, dword [ebp + 0x34]
sub edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0x38]
sbb esi, dword [ebp + 0x14]
mov dword [ebp - 0x80], edi
js 0x46b257
jg 0x46b1d5
cmp edi, ebx
jbe 0x46b257
cmp byte [ebp + 0x6d], bl
je 0x46b1fd
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp + 8]
push edi
push dword [ebp - 0x2c]
add ecx, eax
push ecx
call fcn.004131b9
add esp, 0xc
add dword [ebp + 8], edi
mov dword [ebp + 0x1c], edi
adc dword [ebp + 0xc], esi
jmp 0x46b3e9
push dword [ebp - 0x28]
lea eax, [ebp + 0x1c]
push eax
push edi
push dword [ebp - 0x2c]
push dword [ebp + 0x68]
call fcn.0043e5b1
add esp, 0x14
test eax, eax
jne 0x46b3e9
cmp byte [ebp + 0x57], bl
jne 0x46b35a
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x46b237
xor eax, eax
inc eax
mov dword [ebp - 4], eax
lea ecx, [ebp + 0x28]
call fcn.00439cfd
lea ecx, [ebp + 0x2c]
call fcn.00402c5b
lea ecx, [ebp - 0x18]
call fcn.00439cfd
jmp 0x46b9fb
cmp dword [ebp + 0x14], ebx
jl 0x46b31a
jg 0x46b26b
cmp dword [ebp + 0x10], ebx
jbe 0x46b31a
push dword [ebp - 0x28]
push ebx
push dword [ebp - 4]
call fcn.0049a7e0
mov eax, dword [ebp - 0x28]
cdq
push 1
mov esi, eax
push ebx
mov edi, edx
mov dword [ebp - 0xa0], esi
sub esi, dword [ebp + 0x10]
push ebx
push dword [ebp + 0x68]
mov dword [ebp - 0x9c], edi
sbb edi, dword [ebp + 0x14]
call fcn.0043ae64
add esp, 0x1c
push ebx
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x28]
mov dword [ebp - 0x94], edx
push dword [ebp - 4]
mov dword [ebp - 0x20], ebx
push dword [ebp + 0x68]
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 0x10]
add eax, ecx
mov ecx, dword [ebp - 0x2c]
push esi
push eax
mov eax, dword [ebp + 0x60]
add eax, ecx
push eax
call fcn.004131b9
mov eax, dword [ebp - 0xa0]
add dword [ebp + 0x60], esi
push ebx
push dword [ebp - 0x94]
adc dword [ebp + 0x64], edi
push dword [ebp - 0x98]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x9c]
push dword [ebp + 0x68]
mov dword [ebp + 0x38], eax
call fcn.0043ae64
mov edi, dword [ebp - 0x80]
add esp, 0x1c
cmp byte [ebp + 0x22], bl
je 0x46b31a
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x1c], ebx
jl 0x46b422
jg 0x46b331
cmp dword [ebp + 0x34], ebx
jbe 0x46b422
push ebx
lea eax, [ebp + 0x1c]
push eax
push dword [ebp + 0x34]
push dword [ebp - 0x2c]
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x46b422
cmp byte [ebp + 0x57], bl
je 0x46b493
mov byte [ebp + 0x57], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov al, byte [ebp + 0x57]
lea ecx, [ebp + 0x58]
mov byte [ebp + 0x4a], al
mov byte [ebp + 0x57], bl
mov dword [ebp + 0x1c], ebx
call fcn.00402c5b
push ebx
push ebx
push 4
push ebx
push ebx
mov esi, 0xc0000000
push esi
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x46b3c5
push ebx
push ebx
push 3
push ebx
push ebx
push esi
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x46b3c5
push ebx
mov eax, 0x2000000
push eax
push 3
push ebx
push ebx
push esi
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
mov dword [ebp + 0x68], eax
push dword [ebp - 0x28]
lea eax, [ebp + 0x1c]
push eax
push edi
push dword [ebp - 0x2c]
push dword [ebp + 0x68]
call fcn.0043e5b1
add esp, 0x14
test eax, eax
je 0x46b224
cmp byte [ebp + 0x4a], 2
je 0x46b422
cmp dword [ebp + 0x1c], edi
jbe 0x46b3f1
mov dword [ebp + 0x1c], edi
cmp byte [ebp + 0x6f], bl
je 0x46b408
push dword [ebp + 0x1c]
push ebx
push dword [ebp - 0x2c]
call fcn.0049a7e0
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x1c]
sub dword [ebp + 0x34], eax
mov byte [ebp + 0x57], bl
sbb dword [ebp + 0x38], ebx
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
add dword [ebp - 0x2c], edi
jmp 0x46b257
cmp byte [ebp + 0x6f], bl
je 0x46b439
push dword [ebp + 0x1c]
push ebx
push dword [ebp - 0x2c]
call fcn.0049a7e0
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x1c]
add dword [ebp - 0x2c], eax
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x64], eax
jg 0x46b167
jl 0x46b45f
mov eax, dword [ebp + 0x40]
cmp dword [ebp + 0x60], eax
jae 0x46b167
cmp dword [ebp + 0x64], ebx
jl 0x46afa5
jg 0x46b473
cmp dword [ebp + 0x60], ebx
jbe 0x46afa5
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x2c]
je 0x46afa5
push dword [ebp + 0x60]
push dword [ebp - 0x2c]
push eax
call fcn.004131b9
add esp, 0xc
jmp 0x46afa5
mov dword [ebp - 0x68], 1
cmp dword [ebp - 0x68], ebx
jne 0x46b22a
cmp dword [ebp + 0x50], ebx
jl 0x46b4c6
jg 0x46b4af
cmp dword [ebp + 0x4c], ebx
jbe 0x46b4c6
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x46b22a
cmp dword [ebp + 0x50], 0x7fffffff
jne 0x46b22a
mov dword [ebp - 4], ebx
jmp 0x46b23a
mov eax, dword [ebp + 8]
or eax, dword [ebp + 0xc]
je 0x46b24a
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp + 0x68]
call fcn.0043ae64
add esp, 0x10
jmp 0x46b24a
cmp byte [ebp + 0x6d], bl
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp + 0x30], ebx
jne 0x46b678
cmp dword [ebp - 0x24], 0x11
jne 0x46b54e
lea eax, [ebp - 0x50]
push eax
push ebx
push dword [ebp + 0x68]
call fcn.0044da4d
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
jg 0x46b5b8
jl 0x46b539
cmp eax, ebx
jae 0x46b5b8
lea ecx, [ebp + 0x58]
call fcn.00402c5b
lea ecx, [ebp - 0x5c]
call fcn.00439cfd
jmp 0x46a2b3
cmp dword [ebp + 0x68], ebx
je 0x46b5be
cmp dword [ebp - 0x24], ebx
jne 0x46b593
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043ae64
mov ecx, dword [ebp + 8]
add esp, 0x10
mov edi, eax
mov eax, dword [ebp + 0xc]
sub ecx, 0x400
mov esi, edx
sbb eax, ebx
cmp esi, eax
jg 0x46b5be
jl 0x46b583
cmp edi, ecx
jae 0x46b5be
cmp dword [ebp + 0x3c], ebx
jne 0x46b5be
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x46b5be
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.0043e531
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x46b5be
jl 0x46b5ae
cmp edi, ebx
jae 0x46b5be
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x46b5be
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x50]
cmp byte [ebp - 0x34], bl
je 0x46b5e9
cmp dword [ebp + 0x60], 0xfffffffc
jne 0x46b5e9
mov ecx, edi
sub ecx, dword [ebp + 8]
mov eax, esi
sbb eax, dword [ebp + 0xc]
mov dword [ebp + 0x60], ecx
cmp eax, ebx
mov dword [ebp + 0x64], eax
jg 0x46b5e9
jl 0x46b5e3
cmp ecx, ebx
jae 0x46b5e9
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x68], ebx
jne 0x46b656
cmp dword [ebp - 0x24], ebx
jne 0x46b649
cmp byte [ebp + 0x6e], bl
je 0x46b609
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 8]
call fcn.00446107
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x46b660
push ebx
push 0x2000000
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004054c4
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x46b660
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x46abaa
cmp byte [ebp + 0x6f], bl
je 0x46b668
cmp dword [ebp - 0x24], ebx
jne 0x46b66d
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp dword [ebp - 0x24], ebx
je 0x46b678
mov eax, dword [ebp + 8]
xor edx, edx
div dword [ebp - 0x28]
mov dword [ebp + 0x30], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 0xc]
adc ecx, dword [ebp - 0x40]
sub edi, eax
sbb esi, ecx
cmp byte [ebp + 0x6d], bl
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], ecx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], esi
jne 0x46b6d8
movzx eax, word [ebp + 0x30]
mov ecx, dword [ebp + 8]
cdq
sub ecx, eax
mov eax, dword [ebp + 0xc]
push ebx
sbb eax, edx
push eax
push ecx
push dword [ebp + 0x68]
call fcn.0043ae64
add esp, 0x10
cmp edx, ebx
jg 0x46b6d8
jl 0x46b6c3
cmp eax, ebx
jae 0x46b6d8
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.00439cfd
jmp 0x46abaa
cmp byte [ebp - 0x31], bl
je 0x46b735
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x40]
jl 0x46b6f5
jg 0x46b6ef
cmp eax, dword [ebp + 0x10]
jbe 0x46b6f5
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
cmp byte [ebp + 0x6d], bl
je 0x46b714
mov ecx, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x48]
push dword [ebp - 0x14]
add ecx, eax
push ecx
call fcn.004131b9
add esp, 0xc
jmp 0x46b9e5
cmp ecx, ebx
jl 0x46b9e5
jg 0x46b726
cmp eax, ebx
jbe 0x46b9e5
push dword [ebp + 0x28]
movzx edx, word [ebp + 0x30]
push edx
push ecx
push eax
push dword [ebp - 0x14]
jmp 0x46b7a2
mov ecx, dword [ebp + 0x64]
cmp ecx, ebx
jl 0x46b757
mov eax, dword [ebp + 0x60]
jg 0x46b745
cmp eax, ebx
jb 0x46b757
cmp ecx, dword [ebp + 0x44]
jg 0x46b757
jl 0x46b751
cmp eax, dword [ebp + 0x40]
jae 0x46b757
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], ecx
cmp byte [ebp + 0x4a], bl
mov eax, dword [ebp - 0x14]
mov dword [ebp + 0x78], eax
je 0x46b7b2
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x3c]
call fcn.0043fd22
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x44]
jl 0x46b78a
jg 0x46b787
cmp eax, dword [ebp + 0x40]
jbe 0x46b78a
mov ecx, dword [ebp + 0x40]
cmp ecx, ebx
jle 0x46b9e5
push dword [ebp - 0x24]
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.0044db21
add esp, 0x18
jmp 0x46b9e5
mov esi, dword [ebp - 0x28]
lea eax, [esi + esi]
push eax
lea ecx, [ebp - 0x68]
call fcn.0043fc43
mov eax, dword [ebp - 0x68]
add eax, esi
lea edi, [esi - 1]
not edi
and edi, eax
movzx eax, word [ebp + 0x30]
sub esi, eax
cmp dword [ebp + 0x44], ebx
mov al, byte [ebp - 0x32]
mov dword [ebp - 0x14], esi
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
mov byte [ebp + 0x4a], bl
mov byte [ebp + 0x6e], al
jl 0x46b9dd
jle 0x46b9d4
cmp dword [ebp + 0x38], ebx
jg 0x46b80c
jl 0x46b800
cmp dword [ebp + 0x34], ebx
ja 0x46b80c
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x46b9dd
cmp dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ebx
jle 0x46b9dd
cmp dword [ebp + 0x44], ebx
jl 0x46b97c
jg 0x46b82c
cmp dword [ebp + 0x40], ebx
jbe 0x46b97c
cmp dword [ebp + 0x38], ebx
jg 0x46b956
jl 0x46b840
cmp dword [ebp + 0x34], ebx
ja 0x46b956
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x46b97c
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
pop ecx
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
jne 0x46b8c0
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.0044b318
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x46b8c0
cmp si, 0x2a
je 0x46b950
cmp si, 0x28
je 0x46b8e8
cmp si, 0x30
jb 0x46b8a7
cmp si, 0x39
jbe 0x46b8c8
cmp byte [ebp + 0x6e], bl
je 0x46b8bb
or esi, 0x20
cmp si, 0x61
jb 0x46b8bb
cmp si, 0x7a
jbe 0x46b8c8
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov si, word [eax]
cmp si, bx
jne 0x46b88b
cmp word [eax], 0x30
jne 0x46b8ff
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x46b8ff
add eax, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], eax
jmp 0x46b904
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
call fcn.0044b318
pop ecx
pop ecx
jmp 0x46b950
cmp byte [ebp + 0x6e], bl
je 0x46b934
push 2
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
call fcn.00440947
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.0043f865
add esp, 0x10
test al, al
jne 0x46b948
mov al, byte [ebp - 0x32]
mov byte [ebp + 0x6e], al
jmp 0x46b948
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044b46e
cmp eax, 1
pop ecx
pop ecx
jl 0x46b97c
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x1c]
je 0x46b97c
mov al, byte [ebp + 0x10]
mov byte [ebp + 0x4a], al
add dword [ebp + 0x34], 0xffffffff
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp + 0x4a]
adc dword [ebp + 0x38], 0xffffffff
mov byte [eax + edi], cl
inc eax
add dword [ebp + 0x40], 0xffffffff
mov dword [ebp - 0xc], eax
adc dword [ebp + 0x44], 0xffffffff
cmp eax, dword [ebp - 0x14]
jl 0x46b818
mov esi, dword [ebp - 0xc]
cmp esi, ebx
jle 0x46b9dd
cmp byte [ebp + 0x6d], bl
je 0x46b9a6
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp + 8]
push esi
add ecx, eax
push edi
push ecx
call fcn.004131b9
mov eax, esi
cdq
add esp, 0xc
add dword [ebp + 8], eax
adc dword [ebp + 0xc], edx
jmp 0x46b9bf
push dword [ebp + 0x28]
movzx eax, word [ebp + 0x30]
push eax
mov eax, esi
cdq
push edx
push eax
push edi
push dword [ebp + 0x68]
call fcn.0044db21
add esp, 0x18
cmp dword [ebp + 0x44], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0x14], 0x200
jg 0x46b7f4
jl 0x46b9dd
cmp dword [ebp + 0x40], ebx
ja 0x46b7f4
lea ecx, [ebp - 0x68]
call fcn.00439cfd
cmp dword [ebp + 0x68], ebx
je 0x46b9f3
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
cmp byte [ebp + 0x4b], bl
je 0x46ba0e
cmp dword [ebp + 0x68], ebx
je 0x46ba0e
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp byte [ebp - 0xd], bl
je 0x46ba3e
cmp dword [ebp + 0x68], ebx
je 0x46ba3e
push 2
lea ecx, [ebp - 0x80]
push ecx
push ebx
xor eax, eax
push eax
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x46ba3e
push dword [ebp - 0x7c]
push dword [ebp - 0x80]
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetFileValidData]
lea ecx, [ebp + 0x58]
call fcn.00402c5b
lea ecx, [ebp - 0x5c]
call fcn.00439cfd
mov ebx, dword [ebp - 4]
jmp 0x46a6cb