Function at 0x468de9
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.00444b0e
push 1
push 2
push str.SeBackupPrivilege
call fcn.004119f4
push 0x10
push 2
push str.SeRestorePrivilege
call fcn.004119f4
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 - 0x35], bl
mov byte [ebp + 0x6d], bl
mov byte [ebp - 0xd], bl
mov byte [ebp + 0x6e], bl
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x84], ebx
xor ecx, ecx
jmp 0x468e91
mov eax, ecx
call fcn.00437e2d
test al, al
jne 0x468e99
cmp cx, 0x2a
jne 0x468e74
mov al, byte [edx]
mov byte [ebp + 0x6f], al
jmp 0x468e8c
cmp cx, 0x2e
jne 0x468e81
mov al, byte [edx]
mov byte [ebp + 0x4a], al
jmp 0x468e8c
cmp cx, 0x23
jne 0x468e8c
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 0x468e5c
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x5c], esi
call fcn.0043dd7e
cmp word [esi], 0x2d
jne 0x468f01
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x468ee6
mov eax, ecx
call fcn.00437e2d
test al, al
jne 0x468ee6
cmp cx, 0x2c
je 0x468ee6
lea eax, [ebp - 0x5c]
push eax
call fcn.00405196
mov esi, dword [ebp - 0x5c]
cmp word [esi], 0x2d
pop ecx
je 0x468eb7
cmp esi, dword [ebp + 0x78]
je 0x468f01
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.0044c8eb
mov eax, dword [ebp - 0x78]
push 1
lea ecx, [ebp - 8]
mov dword [ebp + 0x78], eax
call fcn.0043dd9c
or edi, 0xffffffff
mov eax, 0x200
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], 0x7fffffff
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], 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 - 0x29], bl
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ebx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ebx
mov byte [ebp - 0x36], bl
mov byte [ebp + 0x1b], bl
mov byte [ebp + 0x23], bl
mov dword [ebp + 0x24], ebx
jmp 0x469133
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b0ab4
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x468f84
mov byte [ebp - 0x35], 1
jmp 0x469133
push 4
lea eax, [ebp + 0x78]
push eax
push str._dir
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x468fa7
mov dword [ebp - 0x30], 0x80000000
jmp 0x469133
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.0043fca8
add esp, 0xc
test al, al
jne 0x469145
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b09e0
call fcn.0043fca8
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x469081
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp - 4], esi
call fcn.00405196
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp - 0x14], ebx
jne 0x46902f
inc esi
inc esi
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 4], esi
mov dword [ebp + 0x24], esi
mov dword [ebp - 0xc], esi
call fcn.00405172
mov eax, dword [ebp - 0xc]
cmp word [eax], bx
pop ecx
je 0x46901c
mov word [eax], bx
mov ecx, dword [ebp + 0x1c]
push ebx
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0x24]
call fcn.00444caf
mov dword [ebp - 4], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 4]
push eax
call fcn.0043a760
mov eax, dword [ebp - 0x74]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x469071
cmp eax, ebx
je 0x469071
lea ecx, [ebp - 0x84]
push ecx
push eax
mov dword [ebp + 0x24], ebx
call fcn.0043841e
test eax, eax
pop ecx
pop ecx
je 0x469071
mov eax, dword [ebp - 0x84]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x469071
mov dword [ebp + 0x3c], esi
lea ecx, [ebp - 0x14]
call fcn.00437e1a
mov esi, dword [ebp - 0x5c]
jmp 0x469133
push 3
push eax
push 0x4b0aa8
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x46909e
mov byte [ebp - 0xd], 1
jmp 0x469133
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4b0aa4
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x4690bb
mov byte [ebp + 0x6d], 1
jmp 0x469133
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x4690d8
mov byte [ebp + 0x6e], 1
jmp 0x469133
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x4690f5
mov byte [ebp + 0x23], 1
jmp 0x469133
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b0a98
call fcn.0043fbfd
add esp, 0xc
test al, al
jne 0x46918a
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4a9bb0
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x469129
mov byte [ebp + 0x5e], 1
jmp 0x469133
lea eax, [ebp + 0x78]
push eax
call fcn.00405196
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x468f64
jmp 0x4694c3
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00405196
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
call fcn.0043a760
add esp, 0xc
cmp dword [ebp - 0x58], edi
je 0x469a68
cmp dword [ebp - 0x58], ebx
je 0x469a68
push dword [ebp - 0x58]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x469a68
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x1b], 1
mov byte [ebp + 0x6f], 1
jne 0x4694c3
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x469490
mov eax, ecx
call fcn.00437e2d
test al, al
jne 0x469490
cmp cx, 0x2c
je 0x469490
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
call fcn.00405196
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.0043917b
add esp, 0x10
test al, al
je 0x469225
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.00449426
test eax, eax
pop ecx
pop ecx
jle 0x469480
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
jmp 0x469480
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.0043917b
add esp, 0xc
test al, al
je 0x469262
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.00449426
test eax, eax
pop ecx
pop ecx
jle 0x469480
mov eax, dword [ebp + 0x28]
cdq
jmp 0x46921a
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4692a8
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.00449426
test eax, eax
pop ecx
pop ecx
jle 0x469480
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
jmp 0x469480
push 7
push dword [ebp + 0x78]
push str._count
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4692f0
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.00449426
test eax, eax
pop ecx
pop ecx
jle 0x469480
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x44], eax
jmp 0x469480
push 5
push dword [ebp + 0x78]
push str._len
call fcn.0043917b
add esp, 0xc
test al, al
je 0x469338
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.00449426
test eax, eax
pop ecx
pop ecx
jle 0x469480
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x50], eax
jmp 0x469480
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.0043917b
add esp, 0xc
test al, al
je 0x469375
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.0043917b
add esp, 0xc
test al, al
je 0x469480
mov byte [ebp - 0x36], 1
jmp 0x469480
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4693c3
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp], edi
mov dword [ebp + 4], edi
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.00449426
test eax, eax
pop ecx
pop ecx
jle 0x469480
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x3c], eax
jmp 0x469480
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.0043917b
add esp, 0xc
test al, al
je 0x46940e
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.00449426
test eax, eax
pop ecx
pop ecx
jle 0x469480
mov eax, dword [ebp + 0x28]
mov dword [ebp], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 4], eax
jmp 0x469480
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x46942b
mov byte [ebp + 0x6e], 1
jmp 0x469480
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x469448
mov byte [ebp + 0x23], 1
jmp 0x469480
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x469465
mov byte [ebp + 0x23], 0x10
jmp 0x469480
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b0aa8
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x469480
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x46919f
cmp dword [ebp + 4], ebx
jg 0x4694c3
jl 0x46949c
cmp dword [ebp], ebx
jae 0x4694c3
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.00492f10
cmp edx, ebx
mov dword [ebp], eax
mov dword [ebp + 4], edx
jg 0x4694c3
jl 0x4694bd
cmp eax, ebx
jae 0x4694c3
mov dword [ebp], ebx
mov dword [ebp + 4], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x4694de
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.0043359b
cmp word [eax], 0x2c
jne 0x469a63
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, bx
je 0x469a63
cmp ax, 0x26
jne 0x469517
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x46951f
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.0044c8eb
mov eax, dword [ebp - 0x78]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00449426
cmp dword [ebp + 0xc], ebx
pop ecx
pop ecx
jg 0x46955a
jl 0x469a63
cmp dword [ebp + 8], ebx
jb 0x469a63
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x23
mov dword [ebp + 0x60], 0xfffffffc
mov dword [ebp + 0x64], edi
mov byte [ebp - 0x37], bl
jne 0x469598
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
sete byte [ebp - 0x37]
call fcn.00449426
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.00438346
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x4695b4
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x4695da
jg 0x4695c2
cmp dword [ebp + 0x4c], ebx
jb 0x4695da
cmp dword [ebp + 0x64], eax
jl 0x4695da
jg 0x4695d1
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x4c]
jbe 0x4695da
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
push dword [ebp + 0x78]
call fcn.0040f57b
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.004391ba
add esp, 0x10
cmp al, bl
mov byte [ebp + 0x22], al
jne 0x469640
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.00440de3
test eax, eax
pop ecx
pop ecx
je 0x469640
mov eax, dword [ebp - 0xc]
mov ax, word [eax]
cmp ax, bx
je 0x469630
cmp ax, 0x2c
jne 0x469640
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x2c]
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 0x469655
xor ebx, ebx
inc ebx
jmp 0x469a68
lea eax, [ebp - 0xc]
push 1
push eax
mov dword [ebp - 0xc], esi
call fcn.00444a3a
pop ecx
pop ecx
lea ecx, [ebp - 0x68]
mov esi, eax
call fcn.0043dc57
cmp byte [ebp + 0x4b], bl
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov byte [ebp + 0x5f], bl
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
je 0x4697d8
mov esi, 0x4c1b94
push esi
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp - 4]
call fcn.0043dd7e
mov ecx, dword [ebp + 0x1c]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.0040f3c5
cmp eax, ebx
mov dword [ebp + 0x2c], eax
jne 0x4696c3
lea ecx, [ebp - 4]
call fcn.00437e1a
push esi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x469a5b
mov edx, dword [ebp + 0x64]
cmp edx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x50], eax
jl 0x4696ee
mov esi, dword [ebp + 0x60]
jg 0x4696d9
cmp esi, ebx
jbe 0x4696ee
mov ecx, esi
add ecx, dword [ebp]
mov eax, edx
adc eax, dword [ebp + 4]
cmp eax, ebx
jl 0x469713
jg 0x4696ee
cmp ecx, dword [ebp - 0x50]
jbe 0x469713
mov esi, dword [ebp - 0x50]
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 0x469713
jl 0x469709
cmp esi, ebx
ja 0x469713
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 0x469735
jg 0x469721
cmp dword [ebp + 0x4c], ebx
jb 0x469735
cmp eax, edx
jg 0x469735
jl 0x46972c
cmp dword [ebp + 0x4c], esi
jae 0x469735
mov esi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x64], eax
lea eax, [esi + 0x200000]
push eax
lea ecx, [ebp - 0x68]
call fcn.0043dc99
mov edi, dword [ebp - 0x68]
cmp edi, ebx
jne 0x469763
lea ecx, [ebp - 4]
call fcn.00437e1a
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x46a8e0
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax + 4]
add edi, 0x100000
and edi, 0xfff00000
cmp dword [ebp + 4], ebx
mov dword [ebp - 0x14], edi
jl 0x469790
jg 0x469787
mov eax, dword [ebp]
cmp eax, dword [ebp - 0x50]
jbe 0x469790
mov eax, dword [ebp - 0x50]
mov dword [ebp], eax
mov dword [ebp + 4], ebx
add ecx, dword [ebp]
mov eax, esi
cdq
cmp edx, ebx
mov dword [ebp - 0x64], esi
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
jl 0x4697b8
jg 0x4697a9
cmp eax, ebx
jbe 0x4697b8
cmp edi, ecx
je 0x4697b8
push esi
push ecx
push edi
call fcn.0041286c
add esp, 0xc
lea ecx, [ebp - 4]
mov byte [ebp + 0x5f], 1
mov byte [ebp - 0x29], 1
call fcn.00437e1a
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x4699ad
cmp esi, ebx
je 0x4699ad
lea eax, [esi + 2]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x90], 0x20
cmp word [eax], 0x2e
mov byte [ebp - 0x29], 2
mov byte [ebp + 0x5f], 2
jne 0x469813
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.00444988
pop ecx
pop ecx
mov cx, word [esi]
mov dword [ebp - 0x6c], eax
mov eax, dword [0x4c0ea0]
mov word [ebp + 0x2c], cx
mov ecx, dword [ebp - 0xc]
mov word [esi], bx
mov dx, word [ecx]
cmp dx, 0x2e
mov dword [ebp - 4], ebx
jne 0x469853
cmp word [ecx + 2], bx
jne 0x469853
mov eax, dword [0x4c0ea0]
jmp 0x469865
cmp dx, bx
je 0x469865
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 + 0x2c]
mov word [esi], cx
je 0x46988c
lea ecx, [ebp - 0x90]
push ecx
lea ecx, [ebp - 0x68]
push ecx
push dword [ebp - 0x6c]
push dword [ebp + 0x30]
push eax
call fcn.00413369
add esp, 0x14
mov edi, eax
cmp dword [ebp - 4], ebx
je 0x46989a
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
cmp edi, ebx
je 0x46a8e0
cmp dword [ebp + 0x64], ebx
mov eax, dword [ebp - 0x64]
cdq
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
jl 0x4698d4
jg 0x4698b8
cmp dword [ebp + 0x60], ebx
jbe 0x4698d4
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 0x4698fa
jg 0x4698d4
cmp ecx, dword [ebp - 0x20]
jbe 0x4698fa
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 0x4698fa
jl 0x4698f0
cmp edi, ebx
ja 0x4698fa
xor edi, edi
xor esi, esi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], esi
mov eax, dword [ebp - 0x64]
add eax, 0x200000
push eax
lea ecx, [ebp - 0x68]
call fcn.0043dc99
mov eax, dword [ebp - 0x68]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x46a8e0
mov ecx, dword [ebp - 0x20]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.00492e00
mov eax, dword [ebp - 0x1c]
add esp, 0xc
cmp dword [ebp + 4], eax
jl 0x46994b
jg 0x46993f
mov eax, dword [ebp]
cmp eax, dword [ebp - 0x20]
jbe 0x46994b
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 0x469973
jg 0x46995f
cmp dword [ebp + 0x4c], ebx
jb 0x469973
cmp eax, esi
jg 0x469973
jl 0x46996a
cmp dword [ebp + 0x4c], edi
jae 0x469973
mov edi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], eax
mov eax, edi
mov dword [ebp - 0x64], 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 0x4699ad
jg 0x46999b
cmp eax, ebx
jbe 0x4699ad
cmp edi, dword [ebp + 0x30]
je 0x4699ad
push eax
push dword [ebp + 0x30]
push edi
call fcn.0041286c
add esp, 0xc
cmp byte [ebp - 0xd], bl
mov esi, dword [ebp + 0x3c]
mov dword [ebp + 0x2c], ebx
mov byte [ebp + 0x4b], bl
mov dword [ebp - 4], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x68], esi
je 0x4699d5
push 0x40
push 2
push str.SeManageVolumePrivilege
call fcn.004119f4
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 - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp + 0x57], 1
je 0x4699f7
mov byte [ebp + 0x57], bl
cmp byte [ebp + 0x1b], bl
je 0x469a0c
cmp byte [ebp - 0x36], bl
sete byte [ebp + 0x4b]
cmp byte [ebp + 0x5f], bl
jne 0x469a0c
mov byte [ebp + 0x1b], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x469b1d
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp + 0x24]
call fcn.0043dd7e
mov ecx, dword [ebp + 0x1c]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 8]
call fcn.0040f3c5
cmp eax, ebx
jne 0x469a9a
lea ecx, [ebp + 0x24]
call fcn.00437e1a
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp + 0x58]
call fcn.00402b5a
lea ecx, [ebp - 0x68]
call fcn.00437e1a
mov ebx, 0x80070057
lea ecx, [ebp - 8]
call fcn.00437e1a
lea ecx, [ebp - 0x78]
call fcn.00437e1a
lea ecx, [ebp - 0x84]
call fcn.00402b5a
lea ecx, [ebp - 0x88]
call fcn.00437e1a
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 - 0x5c], edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], eax
jg 0x469ab5
jl 0x469a40
cmp ecx, ebx
jbe 0x469a40
cmp byte [ebp + 0x5f], bl
je 0x469b05
mov esi, dword [ebp + 8]
sub ecx, esi
sbb eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x64]
jl 0x469ad4
jg 0x469ace
cmp ecx, dword [ebp + 0x60]
jbe 0x469ad4
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x469aed
jg 0x469ade
cmp ecx, ebx
jbe 0x469aed
push dword [ebp + 0x10]
add esi, edx
push edi
push esi
call fcn.0041286c
add esp, 0xc
lea ecx, [ebp + 0x24]
call fcn.00437e1a
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x46ad9a
lea ecx, [ebp + 0x24]
call fcn.00437e1a
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x469c80
cmp byte [ebp + 0x5e], bl
je 0x469b27
mov dword [ebp - 0x24], ebx
jmp 0x469b44
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp - 8]
push eax
call fcn.004441f1
movsx eax, al
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x24], eax
jl 0x469a53
cmp byte [ebp + 0x6f], bl
mov ecx, dword [ebp - 8]
jne 0x469b90
cmp dword [ebp - 0x24], ebx
jne 0x469b88
cmp word [ecx], 0x5c
jne 0x469b88
cmp word [ecx + 2], 0x5c
jne 0x469b88
mov ax, word [ecx + 4]
cmp ax, 0x3f
je 0x469b6e
cmp ax, 0x2e
jne 0x469b88
cmp word [ecx + 6], 0x5c
jne 0x469b88
cmp ax, 0x3f
jne 0x469b90
cmp word [ecx + 8], ax
jne 0x469b90
cmp word [ecx + 0xa], 0x3a
jne 0x469b90
mov edi, dword [ebp - 0x30]
mov byte [ebp + 0x5e], bl
jmp 0x469bcc
cmp byte [ebp + 0x6f], bl
mov byte [ebp + 0x5e], 1
jne 0x469baa
push ebx
push ecx
call fcn.004927a1
test eax, eax
pop ecx
pop ecx
je 0x469baa
mov byte [ebp + 0x6f], 0x20
cmp dword [ebp + 0x3c], ebx
mov edi, dword [ebp - 0x30]
jne 0x469bf0
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.004051d2
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x469beb
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.004051d2
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x5e], bl
je 0x469c1d
cmp byte [ebp + 0x1b], bl
je 0x469c1d
cmp dword [ebp - 0x24], ebx
jg 0x469c1d
cmp dword [ebp + 0x68], ebx
jne 0x469c3e
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.004051d2
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x469c3e
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.004051d2
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x24], ebx
je 0x469c5c
cmp dword [ebp + 0x58], ebx
je 0x469c5c
push dword [ebp + 0x24]
push dword [ebp + 0x58]
push dword [ebp + 0x1c]
call fcn.00446569
add esp, 0xc
mov dword [ebp + 0x58], ebx
cmp dword [ebp - 0x24], ebx
je 0x469c80
cmp dword [ebp + 0x68], ebx
je 0x469c80
mov edi, 0x200
push edi
push dword [ebp + 0x68]
call fcn.0043b675
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x28], eax
jge 0x469c80
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 - 0x6c], eax
jne 0x46a88e
cmp dword [ebp + 0x38], ebx
jl 0x469a53
mov edi, dword [ebp + 0x34]
jg 0x469cad
cmp edi, ebx
jbe 0x469a53
cmp dword [ebp - 0x44], ebx
jl 0x469a53
jg 0x469cc1
cmp dword [ebp - 0x48], ebx
jbe 0x469a53
cmp dword [ebp + 0x50], ebx
jl 0x469cf0
jg 0x469ccd
cmp dword [ebp + 0x4c], ebx
jb 0x469cf0
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.00492e60
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], edx
jmp 0x469d1e
cmp dword [ebp + 0x40], 0xffffffff
jne 0x469d09
mov eax, 0x7fffffff
cmp dword [ebp + 0x44], eax
jne 0x469d09
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], eax
jmp 0x469d1e
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [ebp + 0x38]
push edi
call fcn.00492f10
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edx
push dword [ebp - 0x18]
call fcn.0041161a
pop ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.00446497
cmp byte [ebp + 0x6d], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], eax
jg 0x469d50
cmp dword [ebp + 0x68], ebx
jne 0x469d50
lea ecx, [ebp - 0x18]
call fcn.00437e1a
jmp 0x46a8d8
cmp byte [ebp + 0x23], bl
je 0x469eab
cmp dword [ebp - 0x24], ebx
jg 0x469eab
cmp byte [ebp + 0x6d], bl
jg 0x469eab
cmp dword [ebp + 0x3c], ebx
jne 0x469d78
lea ecx, [ebp + 0x58]
call fcn.00402b5a
cmp byte [ebp + 0x6e], bl
je 0x469d8a
push ebx
push ebx
push dword [ebp - 8]
call fcn.00443f9d
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x469dc3
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004051d2
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x469dcc
push ebx
push 0x2000000
push 4
push ebx
push 3
push esi
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004051d2
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
je 0x469d43
cmp byte [ebp + 0x22], bl
je 0x469eab
cmp dword [ebp + 0x44], ebx
jl 0x46a86b
jg 0x469de9
cmp dword [ebp + 0x40], ebx
jb 0x469eab
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [ebp - 0x44]
push dword [ebp - 0x48]
call fcn.00492f10
cmp dword [ebp + 0x50], ebx
jl 0x469e18
jg 0x469e06
cmp dword [ebp + 0x4c], ebx
jb 0x469e18
cmp edx, dword [ebp + 0x50]
jl 0x469e18
jg 0x469e12
cmp eax, dword [ebp + 0x4c]
jbe 0x469e18
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 - 0x50], eax
mov edi, edx
jl 0x469e3e
jg 0x469e35
cmp dword [ebp + 0x40], 0xffffffff
jb 0x469e3e
mov dword [ebp - 0x50], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x4b], bl
jne 0x469e61
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043908b
add esp, 0x10
cmp edx, edi
jg 0x469e61
jl 0x469e5d
cmp eax, dword [ebp - 0x50]
jae 0x469e61
mov byte [ebp + 0x4b], 1
push ebx
push edi
push dword [ebp - 0x50]
push dword [ebp + 0x68]
call fcn.0043908b
add esp, 0x10
cmp eax, dword [ebp - 0x50]
jne 0x469e90
cmp edx, edi
jne 0x469e90
cmp dword [ebp + 0x44], esi
jg 0x469eab
jl 0x46a5e7
cmp dword [ebp + 0x40], 0xffffffff
jae 0x469eab
jmp 0x46a5e7
cmp dword [ebp + 0x44], esi
jg 0x469eab
jl 0x469e9d
cmp dword [ebp + 0x40], 0xffffffff
jae 0x469eab
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043908b
add esp, 0x10
cmp dword [ebp + 0x44], ebx
jl 0x46a86b
jg 0x469ebf
cmp dword [ebp + 0x40], ebx
jbe 0x46a86b
cmp dword [ebp + 0x50], ebx
jl 0x46a86b
jg 0x469ed3
cmp dword [ebp + 0x4c], ebx
jbe 0x46a86b
cmp byte [ebp + 0x22], bl
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
jne 0x469ef0
cmp byte [ebp + 0x5f], bl
mov byte [ebp + 0x6e], 1
je 0x469ef3
mov byte [ebp + 0x6e], bl
cmp dword [ebp - 0x24], ebx
jle 0x469f08
mov eax, dword [ebp + 8]
cdq
idiv dword [ebp - 0x28]
mov eax, edx
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
mov esi, dword [ebp + 8]
sub esi, dword [ebp - 0x34]
mov edi, dword [ebp + 0xc]
sbb edi, dword [ebp - 0x30]
js 0x469f5c
jg 0x469f1c
cmp esi, ebx
jbe 0x469f5c
cmp byte [ebp + 0x6d], bl
jg 0x469f5c
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.0043908b
add esp, 0x10
cmp eax, esi
jne 0x469f37
cmp edx, edi
je 0x469f5c
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x18]
call fcn.00437e1a
lea ecx, [ebp + 0x58]
call fcn.00402b5a
lea ecx, [ebp - 0x68]
call fcn.00437e1a
jmp 0x469a68
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 - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], esi
mov dword [ebp + 0x24], ebx
je 0x46a07c
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.0043dd7e
mov ecx, dword [ebp + 0x1c]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x18]
call fcn.0040f3c5
cmp eax, ebx
jne 0x469fd6
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp + 0x24]
call fcn.00402b5a
lea ecx, [ebp - 0x18]
call fcn.00437e1a
jmp 0x469a53
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xc], ecx
xor ecx, ecx
cmp ecx, ebx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
jg 0x46a010
jl 0x469ff1
cmp eax, ebx
ja 0x46a010
mov dword [ebp - 4], 0x80070057
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x46a5df
cmp byte [ebp + 0x6d], bl
je 0x46a069
mov edx, dword [ebp - 0x54]
sub eax, edi
sbb ecx, esi
mov esi, dword [ebp - 0x58]
sub esi, dword [ebp + 8]
sbb edx, dword [ebp + 0xc]
cmp edx, dword [ebp + 0x50]
jl 0x46a037
jg 0x46a031
cmp esi, dword [ebp + 0x4c]
jbe 0x46a037
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
cmp edx, ecx
jl 0x46a045
jg 0x46a041
cmp esi, eax
jbe 0x46a045
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x469ff8
jg 0x46a04f
cmp esi, ebx
jbe 0x469ff8
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
add edi, eax
mov eax, dword [ebp - 0x5c]
push esi
add ecx, eax
push edi
push ecx
call fcn.0041286c
add esp, 0xc
jmp 0x469ff8
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
push 0x4c1b94
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x46a151
cmp byte [ebp + 0x5f], bl
jg 0x46a151
lea eax, [ebp - 0x18]
push eax
call fcn.0044437d
pop ecx
push ebx
push ebx
push 3
push ebx
push 3
movsx eax, al
push 0x80000000
push dword [ebp - 0x18]
lea ecx, [ebp + 0x24]
mov dword [ebp - 0x14], eax
call fcn.004051d2
cmp dword [ebp + 0x24], ebx
jne 0x46a0e7
push ebx
push 0x2000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x18]
lea ecx, [ebp + 0x24]
call fcn.004051d2
cmp dword [ebp + 0x24], ebx
jne 0x46a0e7
lea ecx, [ebp + 0x24]
call fcn.00402b5a
jmp 0x469d43
cmp dword [ebp - 0x14], ebx
je 0x46a112
push 0x200
push dword [ebp + 0x24]
call fcn.0043b675
cmp dword [ebp - 0x14], ebx
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
jle 0x46a112
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 0x46a151
jg 0x46a126
cmp ecx, ebx
jbe 0x46a151
push ebx
push eax
push ecx
push dword [ebp + 0x24]
call fcn.0043908b
add esp, 0x10
cmp eax, edi
jne 0x46a13c
cmp edx, esi
je 0x46a151
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x24]
mov ebx, eax
call fcn.00402b5a
jmp 0x469f3f
cmp dword [ebp - 0x24], ebx
jle 0x46a185
mov eax, dword [ebp - 0x28]
cdq
mov esi, eax
add eax, dword [ebp - 0x48]
mov edi, edx
mov ecx, edx
adc ecx, dword [ebp - 0x44]
push edi
sub eax, 1
push esi
sbb ecx, ebx
push ecx
push eax
call fcn.00492e60
push edi
push esi
push edx
push eax
call fcn.00492f10
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], edx
jmp 0x46a191
mov eax, dword [ebp - 0x48]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp + 0x44], eax
cmp dword [ebp - 0x14], ebx
jle 0x46a1bf
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.00492e60
push edi
push esi
push edx
push eax
call fcn.00492f10
jmp 0x46a1c5
mov eax, dword [ebp + 0x34]
mov edx, dword [ebp + 0x38]
cmp eax, dword [ebp + 0x40]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jne 0x46a1d5
cmp edx, dword [ebp + 0x44]
je 0x46a1df
add eax, dword [ebp + 0x40]
mov ecx, edx
adc ecx, dword [ebp + 0x44]
jmp 0x46a1e1
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 0x46a206
mov eax, dword [ebp - 0x28]
cdq
lea edi, [esi + eax]
lea eax, [edi + 0x100000]
push eax
lea ecx, [ebp + 0x2c]
mov dword [ebp - 0x7c], edx
call fcn.0043dc74
mov eax, dword [ebp + 0x2c]
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.00492e00
add esp, 0xc
cmp dword [ebp + 0x14], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp - 0x6c], ebx
mov byte [ebp + 0x6f], bl
jl 0x46a2af
jg 0x46a256
cmp dword [ebp + 0x10], ebx
jbe 0x46a2af
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 + 0x24]
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 0x46a29f
jl 0x46a293
cmp dword [ebp + 0x4c], ebx
jae 0x46a29f
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.0041286c
add esp, 0xc
cmp dword [ebp - 0x30], ebx
jl 0x46a32a
jg 0x46a2bb
cmp dword [ebp - 0x34], ebx
jbe 0x46a32a
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043908b
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 - 0x34]
push eax
add ecx, eax
push ecx
call fcn.0041286c
push dword [ebp - 0x34]
push esi
push dword [ebp + 0x3c]
call fcn.0041286c
mov eax, dword [ebp - 0x34]
add dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x30]
push ebx
push dword [ebp - 0x7c]
adc dword [ebp + 0x64], eax
push edi
push dword [ebp + 0x68]
call fcn.0043908b
add esp, 0x28
cmp byte [ebp + 0x22], bl
je 0x46a32a
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x5e], 1
jg 0x46a4dc
jl 0x46a342
cmp dword [ebp + 0x60], ebx
ja 0x46a4dc
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x46a4e7
jg 0x46a358
cmp dword [ebp + 0x4c], ebx
jbe 0x46a4e7
cmp byte [ebp + 0x5e], bl
je 0x46a4e7
cmp byte [ebp + 0x6e], bl
je 0x46a477
mov esi, dword [ebp - 0x54]
cmp esi, eax
jg 0x46a380
jl 0x46a37b
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp + 0x4c]
ja 0x46a380
mov ecx, dword [ebp - 0x58]
jmp 0x46a385
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 0x46a3a7
jg 0x46a39b
cmp edx, dword [ebp]
jbe 0x46a3a7
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 0x46a3cd
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 - 0x44], eax
jmp 0x46a3d2
mov edi, ecx
mov dword [ebp - 0x44], esi
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x48], edi
je 0x46a42d
mov esi, dword [ebp - 0x50]
sub esi, dword [ebp - 0x40]
mov edi, dword [ebp - 0x4c]
sbb edi, dword [ebp - 0x3c]
cmp edi, dword [ebp - 0x44]
jl 0x46a3f8
jg 0x46a3f2
cmp esi, dword [ebp - 0x48]
jbe 0x46a3f8
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x44], ebx
jl 0x46a41f
jg 0x46a404
cmp dword [ebp - 0x48], ebx
jbe 0x46a41f
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x40]
add ecx, eax
mov eax, dword [ebp + 0x60]
push esi
push ecx
mov ecx, dword [ebp + 0x3c]
add eax, ecx
push eax
call fcn.0041286c
add esp, 0xc
add dword [ebp - 0x40], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edi
adc dword [ebp - 0x3c], edi
jmp 0x46a451
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 + 0x24]
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 0x46a4e7
jg 0x46a463
cmp esi, ebx
jbe 0x46a4e7
cmp edi, dword [ebp + 0x50]
jl 0x46a4c1
jg 0x46a46f
cmp esi, dword [ebp + 0x4c]
jbe 0x46a4c1
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x50]
jmp 0x46a4bb
cmp dword [ebp + 0x44], eax
jg 0x46a48e
jl 0x46a486
mov ecx, dword [ebp + 0x40]
cmp ecx, dword [ebp + 0x4c]
ja 0x46a48e
mov esi, dword [ebp + 0x40]
mov edi, dword [ebp + 0x44]
jmp 0x46a493
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 0x46a4c1
jg 0x46a4af
cmp ecx, dword [ebp]
jbe 0x46a4c1
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 0x46a4d0
cmp dword [ebp + 0x50], 0x7fffffff
je 0x46a4d6
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 - 0x30], eax
jmp 0x46a7e2
cmp dword [ebp + 0x64], ebx
jl 0x46a837
jg 0x46a4fb
cmp dword [ebp + 0x60], ebx
jbe 0x46a837
mov eax, dword [ebp + 0x3c]
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x44]
cmp eax, ecx
jg 0x46a523
jl 0x46a518
mov edx, dword [ebp + 0x40]
cmp edx, dword [ebp + 0x60]
ja 0x46a523
mov ecx, dword [ebp + 0x40]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
jmp 0x46a52c
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 0x46a54d
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004951f0
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
jmp 0x46a553
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 0x46a5f4
jg 0x46a572
cmp edi, ebx
jbe 0x46a5f4
cmp byte [ebp + 0x6d], bl
je 0x46a59a
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp + 8]
push edi
push dword [ebp - 0x30]
add ecx, eax
push ecx
call fcn.0041286c
add esp, 0xc
add dword [ebp + 8], edi
mov dword [ebp + 0x1c], edi
adc dword [ebp + 0xc], esi
jmp 0x46a786
push dword [ebp - 0x28]
lea eax, [ebp + 0x1c]
push eax
push edi
push dword [ebp - 0x30]
push dword [ebp + 0x68]
call fcn.0043c700
add esp, 0x14
test eax, eax
jne 0x46a786
cmp byte [ebp + 0x57], bl
jne 0x46a6f7
call dword [sym.imp.KERNEL32.DLL_GetLastError]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, ebx
jne 0x46a5d4
xor eax, eax
inc eax
mov dword [ebp - 4], eax
lea ecx, [ebp + 0x2c]
call fcn.00437e1a
lea ecx, [ebp + 0x24]
call fcn.00402b5a
lea ecx, [ebp - 0x18]
call fcn.00437e1a
jmp 0x46ad9a
cmp dword [ebp + 0x14], ebx
jl 0x46a6b7
jg 0x46a608
cmp dword [ebp + 0x10], ebx
jbe 0x46a6b7
push dword [ebp - 0x28]
push ebx
push dword [ebp - 4]
call fcn.00492e00
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.0043908b
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 - 0x30]
push esi
push eax
mov eax, dword [ebp + 0x60]
add eax, ecx
push eax
call fcn.0041286c
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.0043908b
mov edi, dword [ebp - 0x80]
add esp, 0x1c
cmp byte [ebp + 0x22], bl
je 0x46a6b7
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x1c], ebx
jl 0x46a7bf
jg 0x46a6ce
cmp dword [ebp + 0x34], ebx
jbe 0x46a7bf
push ebx
lea eax, [ebp + 0x1c]
push eax
push dword [ebp + 0x34]
push dword [ebp - 0x30]
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
jne 0x46a7bf
cmp byte [ebp + 0x57], bl
je 0x46a830
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.00402b5a
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.004051d2
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x46a762
push ebx
push ebx
push 3
push ebx
push ebx
push esi
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004051d2
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x46a762
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.004051d2
mov dword [ebp + 0x68], eax
push dword [ebp - 0x28]
lea eax, [ebp + 0x1c]
push eax
push edi
push dword [ebp - 0x30]
push dword [ebp + 0x68]
call fcn.0043c700
add esp, 0x14
test eax, eax
je 0x46a5c1
cmp byte [ebp + 0x4a], 2
je 0x46a7bf
cmp dword [ebp + 0x1c], edi
jbe 0x46a78e
mov dword [ebp + 0x1c], edi
cmp byte [ebp + 0x6f], bl
je 0x46a7a5
push dword [ebp + 0x1c]
push ebx
push dword [ebp - 0x30]
call fcn.00492e00
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 - 0x30], edi
jmp 0x46a5f4
cmp byte [ebp + 0x6f], bl
je 0x46a7d6
push dword [ebp + 0x1c]
push ebx
push dword [ebp - 0x30]
call fcn.00492e00
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x1c]
add dword [ebp - 0x30], eax
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x64], eax
jg 0x46a504
jl 0x46a7fc
mov eax, dword [ebp + 0x40]
cmp dword [ebp + 0x60], eax
jae 0x46a504
cmp dword [ebp + 0x64], ebx
jl 0x46a342
jg 0x46a810
cmp dword [ebp + 0x60], ebx
jbe 0x46a342
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x30]
je 0x46a342
push dword [ebp + 0x60]
push dword [ebp - 0x30]
push eax
call fcn.0041286c
add esp, 0xc
jmp 0x46a342
mov dword [ebp - 0x6c], 1
cmp dword [ebp - 0x6c], ebx
jne 0x46a5c7
cmp dword [ebp + 0x50], ebx
jl 0x46a863
jg 0x46a84c
cmp dword [ebp + 0x4c], ebx
jbe 0x46a863
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x46a5c7
cmp dword [ebp + 0x50], 0x7fffffff
jne 0x46a5c7
mov dword [ebp - 4], ebx
jmp 0x46a5d7
mov eax, dword [ebp + 8]
or eax, dword [ebp + 0xc]
je 0x46a5e7
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp + 0x68]
call fcn.0043908b
add esp, 0x10
jmp 0x46a5e7
cmp byte [ebp + 0x6d], bl
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp + 0x30], ebx
jne 0x46aa17
cmp dword [ebp - 0x24], 0x11
jne 0x46a8ed
lea eax, [ebp - 0x40]
push eax
push dword [ebp + 0x2c]
push dword [ebp + 0x68]
call fcn.0044b8a7
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
jg 0x46a957
jl 0x46a8d8
cmp eax, ebx
jae 0x46a957
lea ecx, [ebp + 0x58]
call fcn.00402b5a
lea ecx, [ebp - 0x68]
call fcn.00437e1a
jmp 0x46964d
cmp dword [ebp + 0x68], ebx
je 0x46a95d
cmp dword [ebp - 0x24], ebx
jne 0x46a932
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043908b
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 0x46a95d
jl 0x46a922
cmp edi, ecx
jae 0x46a95d
cmp dword [ebp + 0x3c], ebx
jne 0x46a95d
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x46a95d
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.0043c680
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x46a95d
jl 0x46a94d
cmp edi, ebx
jae 0x46a95d
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x46a95d
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
cmp byte [ebp - 0x37], bl
je 0x46a988
cmp dword [ebp + 0x60], 0xfffffffc
jne 0x46a988
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 0x46a988
jl 0x46a982
cmp ecx, ebx
jae 0x46a988
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x68], ebx
jne 0x46a9f5
cmp dword [ebp - 0x24], ebx
jne 0x46a9e8
cmp byte [ebp + 0x6e], bl
je 0x46a9a8
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 8]
call fcn.00443f9d
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.004051d2
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x46a9ff
push ebx
push 0x2000000
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp - 8]
lea ecx, [ebp + 0x58]
call fcn.004051d2
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x46a9ff
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
jmp 0x469f47
cmp byte [ebp + 0x6f], bl
je 0x46aa07
cmp dword [ebp - 0x24], ebx
jne 0x46aa0c
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp dword [ebp - 0x24], ebx
je 0x46aa17
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 - 0x50]
mov ecx, dword [ebp + 0xc]
adc ecx, dword [ebp - 0x4c]
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 0x46aa77
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.0043908b
add esp, 0x10
cmp edx, ebx
jg 0x46aa77
jl 0x46aa62
cmp eax, ebx
jae 0x46aa77
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.00437e1a
jmp 0x469f47
cmp byte [ebp - 0x29], bl
je 0x46aad4
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x40]
jl 0x46aa94
jg 0x46aa8e
cmp eax, dword [ebp + 0x10]
jbe 0x46aa94
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
cmp byte [ebp + 0x6d], bl
je 0x46aab3
mov ecx, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x5c]
push dword [ebp - 0x14]
add ecx, eax
push ecx
call fcn.0041286c
add esp, 0xc
jmp 0x46ad84
cmp ecx, ebx
jl 0x46ad84
jg 0x46aac5
cmp eax, ebx
jbe 0x46ad84
push dword [ebp - 0x6c]
movzx edx, word [ebp + 0x30]
push edx
push ecx
push eax
push dword [ebp - 0x14]
jmp 0x46ab41
mov ecx, dword [ebp + 0x64]
cmp ecx, ebx
jl 0x46aaf6
mov eax, dword [ebp + 0x60]
jg 0x46aae4
cmp eax, ebx
jb 0x46aaf6
cmp ecx, dword [ebp + 0x44]
jg 0x46aaf6
jl 0x46aaf0
cmp eax, dword [ebp + 0x40]
jae 0x46aaf6
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 0x46ab51
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x3c]
call fcn.0043dd06
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x44]
jl 0x46ab29
jg 0x46ab26
cmp eax, dword [ebp + 0x40]
jbe 0x46ab29
mov ecx, dword [ebp + 0x40]
cmp ecx, ebx
jle 0x46ad84
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.0044b97b
add esp, 0x18
jmp 0x46ad84
mov esi, dword [ebp - 0x28]
lea eax, [esi + esi]
push eax
lea ecx, [ebp + 0x2c]
call fcn.0043dc74
mov eax, dword [ebp + 0x2c]
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 - 0x35]
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 0x46ad7c
jle 0x46ad73
cmp dword [ebp + 0x38], ebx
jg 0x46abab
jl 0x46ab9f
cmp dword [ebp + 0x34], ebx
ja 0x46abab
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x46ad7c
cmp dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ebx
jle 0x46ad7c
cmp dword [ebp + 0x44], ebx
jl 0x46ad1b
jg 0x46abcb
cmp dword [ebp + 0x40], ebx
jbe 0x46ad1b
cmp dword [ebp + 0x38], ebx
jg 0x46acf5
jl 0x46abdf
cmp dword [ebp + 0x34], ebx
ja 0x46acf5
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x46ad1b
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
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 0x46ac5f
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.00449426
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x46ac5f
cmp si, 0x2a
je 0x46acef
cmp si, 0x28
je 0x46ac87
cmp si, 0x30
jb 0x46ac46
cmp si, 0x39
jbe 0x46ac67
cmp byte [ebp + 0x6e], bl
je 0x46ac5a
or esi, 0x20
cmp si, 0x61
jb 0x46ac5a
cmp si, 0x7a
jbe 0x46ac67
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov si, word [eax]
cmp si, bx
jne 0x46ac2a
cmp word [eax], 0x30
jne 0x46ac9e
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x46ac9e
add eax, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], eax
jmp 0x46aca3
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
call fcn.00449426
pop ecx
pop ecx
jmp 0x46acef
cmp byte [ebp + 0x6e], bl
je 0x46acd3
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.0043e980
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.004129ca
add esp, 0x10
test al, al
jne 0x46ace7
mov al, byte [ebp - 0x35]
mov byte [ebp + 0x6e], al
jmp 0x46ace7
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044957c
cmp eax, 1
pop ecx
pop ecx
jl 0x46ad1b
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x1c]
je 0x46ad1b
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 0x46abb7
mov esi, dword [ebp - 0xc]
cmp esi, ebx
jle 0x46ad7c
cmp byte [ebp + 0x6d], bl
je 0x46ad45
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp + 8]
push esi
add ecx, eax
push edi
push ecx
call fcn.0041286c
mov eax, esi
cdq
add esp, 0xc
add dword [ebp + 8], eax
adc dword [ebp + 0xc], edx
jmp 0x46ad5e
push dword [ebp - 0x6c]
movzx eax, word [ebp + 0x30]
push eax
mov eax, esi
cdq
push edx
push eax
push edi
push dword [ebp + 0x68]
call fcn.0044b97b
add esp, 0x18
cmp dword [ebp + 0x44], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0x14], 0x200
jg 0x46ab93
jl 0x46ad7c
cmp dword [ebp + 0x40], ebx
ja 0x46ab93
lea ecx, [ebp + 0x2c]
call fcn.00437e1a
cmp dword [ebp + 0x68], ebx
je 0x46ad92
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
cmp byte [ebp + 0x4b], bl
je 0x46adad
cmp dword [ebp + 0x68], ebx
je 0x46adad
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.DLL_SetEndOfFile]
cmp byte [ebp - 0xd], bl
je 0x46addd
cmp dword [ebp + 0x68], ebx
je 0x46addd
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 0x46addd
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.00402b5a
lea ecx, [ebp - 0x68]
call fcn.00437e1a
mov ebx, dword [ebp - 4]
jmp 0x469a68