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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x108
push ebx
push esi
push edi
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0x80]
xor ebx, ebx
push eax
mov dword [ebp + 0x24], ecx
mov dword [ebp - 0x80], ebx
call fcn.0044b8da
push 1
push 2
push str.SeBackupPrivilege
call fcn.004130be
push 0x10
push 2
push str.SeRestorePrivilege
call fcn.004130be
mov edx, dword [ebp + 0x78]
add esp, 0x20
mov byte [ebp + 0x6f], bl
mov byte [ebp + 0x57], bl
mov byte [ebp + 0x55], bl
mov byte [ebp - 0x2a], bl
mov byte [ebp + 0x6d], bl
mov byte [ebp - 5], bl
mov byte [ebp + 0x6e], bl
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x7c], ebx
xor ecx, ecx
jmp 0x472f27
mov eax, ecx
call fcn.0040f4c7
test al, al
jne 0x472f2f
cmp cx, 0x2a
jne 0x472f0a
mov al, byte [edx]
mov byte [ebp + 0x6f], al
jmp 0x472f22
cmp cx, 0x2e
jne 0x472f17
mov al, byte [edx]
mov byte [ebp + 0x57], al
jmp 0x472f22
cmp cx, 0x23
jne 0x472f22
mov al, byte [edx]
mov byte [ebp + 0x55], al
inc edx
inc edx
mov dword [ebp + 0x78], edx
mov cx, word [edx]
cmp cx, bx
jne 0x472ef2
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x40], esi
call fcn.004441a1
cmp word [esi], 0x2d
jne 0x472f97
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x472f7c
mov eax, ecx
call fcn.0040f4c7
test al, al
jne 0x472f7c
cmp cx, 0x2c
je 0x472f7c
lea eax, [ebp - 0x40]
push eax
call fcn.00408ddd
mov esi, dword [ebp - 0x40]
cmp word [esi], 0x2d
pop ecx
je 0x472f4d
cmp esi, dword [ebp + 0x78]
je 0x472f97
mov ecx, dword [ebp + 0x24]
push 1
push ebx
lea eax, [ebp - 0x70]
push eax
mov word [esi - 2], bx
push dword [ebp + 0x78]
call fcn.00454cef
mov eax, dword [ebp - 0x70]
push 1
lea ecx, [ebp]
mov dword [ebp + 0x78], eax
call fcn.004441bf
or edi, 0xffffffff
mov eax, 0x200
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], 0x7fffffff
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x30], ebx
mov byte [ebp - 0x29], bl
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ebx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x2b], bl
mov byte [ebp + 0x23], bl
mov byte [ebp + 0x22], bl
mov dword [ebp + 0x40], ebx
jmp 0x4731c3
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c76b4
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47301a
mov byte [ebp - 0x2a], 1
jmp 0x4731c3
push 4
lea eax, [ebp + 0x78]
push eax
push str._dir
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47303d
mov dword [ebp - 0x24], 0x80000000
jmp 0x4731c3
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.0044619d
add esp, 0xc
test al, al
jne 0x4731d5
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c75cc
call fcn.0044619d
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x473111
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp + 0xc], esi
call fcn.00408ddd
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp - 0xc], ebx
jne 0x4730c5
inc esi
inc esi
lea eax, [ebp - 4]
push eax
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x40], esi
mov dword [ebp - 4], esi
call fcn.00405676
mov eax, dword [ebp - 4]
cmp word [eax], bx
pop ecx
je 0x4730b2
mov word [eax], bx
mov ecx, dword [ebp + 0x24]
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x40]
call fcn.0044bcb5
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.00440716
mov eax, dword [ebp - 0x6c]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x473101
cmp eax, ebx
je 0x473101
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov dword [ebp + 0x40], ebx
call fcn.0043e369
test eax, eax
pop ecx
pop ecx
je 0x473101
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x473101
mov dword [ebp + 0x3c], esi
lea ecx, [ebp - 0xc]
call fcn.0043dd41
mov esi, dword [ebp - 0x40]
jmp 0x4731c3
push 3
push eax
push 0x4c76a8
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47312e
mov byte [ebp - 5], 1
jmp 0x4731c3
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4c76a4
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47314b
mov byte [ebp + 0x6d], 1
jmp 0x4731c3
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.004460ea
add esp, 0xc
test al, al
je 0x473168
mov byte [ebp + 0x6e], 1
jmp 0x4731c3
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.004460ea
add esp, 0xc
test al, al
je 0x473185
mov byte [ebp + 0x22], 1
jmp 0x4731c3
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c7698
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x47321a
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4c1ac8
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4731b9
mov byte [ebp + 0x5e], 1
jmp 0x4731c3
lea eax, [ebp + 0x78]
push eax
call fcn.00408ddd
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x472ffa
jmp 0x473553
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00408ddd
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.00440716
add esp, 0xc
cmp dword [ebp - 0x48], edi
je 0x473afb
cmp dword [ebp - 0x48], ebx
je 0x473afb
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x473afb
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x23], 1
mov byte [ebp + 0x6f], 1
jne 0x473553
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x473520
mov eax, ecx
call fcn.0040f4c7
test al, al
jne 0x473520
cmp cx, 0x2c
je 0x473520
mov eax, dword [ebp + 0x78]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.00408ddd
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.0043f11b
add esp, 0x10
test al, al
je 0x4732b5
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.0045030b
test eax, eax
pop ecx
pop ecx
jle 0x473510
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
jmp 0x473510
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x4732f2
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.0045030b
test eax, eax
pop ecx
pop ecx
jle 0x473510
mov eax, dword [ebp + 0x28]
cdq
jmp 0x4732aa
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x473338
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.0045030b
test eax, eax
pop ecx
pop ecx
jle 0x473510
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x473510
push 7
push dword [ebp + 0x78]
push str._count
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x473380
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.0045030b
test eax, eax
pop ecx
pop ecx
jle 0x473510
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x48], eax
jmp 0x473510
push 5
push dword [ebp + 0x78]
push str._len
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x4733c8
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.0045030b
test eax, eax
pop ecx
pop ecx
jle 0x473510
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x50], eax
jmp 0x473510
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x473405
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x473510
mov byte [ebp - 0x2b], 1
jmp 0x473510
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x473453
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.0045030b
test eax, eax
pop ecx
pop ecx
jle 0x473510
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x58], eax
jmp 0x473510
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x47349e
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.0045030b
test eax, eax
pop ecx
pop ecx
jle 0x473510
mov eax, dword [ebp + 0x28]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 8], eax
jmp 0x473510
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4734bb
mov byte [ebp + 0x6e], 1
jmp 0x473510
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4734d8
mov byte [ebp + 0x22], 1
jmp 0x473510
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4734f5
mov byte [ebp + 0x22], 0x10
jmp 0x473510
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c76a8
call fcn.004460ea
add esp, 0xc
test al, al
je 0x473510
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x47322f
cmp dword [ebp + 8], ebx
jg 0x473553
jl 0x47352c
cmp dword [ebp + 4], ebx
jae 0x473553
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004aa1b0
cmp edx, ebx
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
jg 0x473553
jl 0x47354d
cmp eax, ebx
jae 0x473553
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47356e
mov byte [ebp + 0x22], 1
mov ecx, dword [ebp + 0x24]
push ebx
push 0x2c
lea eax, [ebp]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], esi
call fcn.00438e0f
cmp word [eax], 0x2c
jne 0x473af6
mov eax, dword [ebp]
mov ax, word [eax]
cmp ax, bx
je 0x473af6
cmp ax, 0x26
jne 0x4735a7
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x4735af
mov byte [ebp + 0x6f], bl
mov ecx, dword [ebp + 0x24]
push 1
push ebx
lea eax, [ebp - 0x70]
push eax
push dword [ebp + 0x78]
call fcn.00454cef
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0045030b
cmp dword [ebp + 0x14], ebx
pop ecx
pop ecx
jg 0x4735ea
jl 0x473af6
cmp dword [ebp + 0x10], ebx
jb 0x473af6
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x23
mov dword [ebp + 0x60], 0xfffffffc
mov dword [ebp + 0x64], edi
mov byte [ebp - 0x2c], bl
jne 0x473628
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
sete byte [ebp - 0x2c]
call fcn.0045030b
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.0043e29c
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x473644
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x47366a
jg 0x473652
cmp dword [ebp + 0x4c], ebx
jb 0x47366a
cmp dword [ebp + 0x64], eax
jl 0x47366a
jg 0x473661
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x4c]
jbe 0x47366a
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
push dword [ebp + 0x78]
call fcn.00410a68
mov esi, dword [ebp + 0x78]
push esi
push str.zero
mov dword [ebp - 4], esi
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call fcn.0043f15a
add esp, 0x10
cmp al, bl
mov byte [ebp + 0x21], al
jne 0x4736d0
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 4]
push eax
call fcn.0044746e
test eax, eax
pop ecx
pop ecx
je 0x4736d0
mov eax, dword [ebp - 4]
mov ax, word [eax]
cmp ax, bx
je 0x4736c0
cmp ax, 0x2c
jne 0x4736d0
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x2c]
mov byte [ebp + 0x21], 2
mov dword [ebp - 0x68], eax
cmp word [esi], bx
mov edi, esi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], esi
jne 0x4736e5
xor ebx, ebx
inc ebx
jmp 0x473afb
lea eax, [ebp - 4]
push 1
push eax
mov dword [ebp - 4], esi
call fcn.0044b806
pop ecx
pop ecx
lea ecx, [ebp - 0x54]
mov esi, eax
call fcn.0044402d
cmp byte [ebp + 0x55], bl
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov byte [ebp + 0x5f], bl
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
je 0x473868
mov esi, 0x4d8d1c
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0xc]
call fcn.004441a1
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.004108b2
cmp eax, ebx
mov dword [ebp + 0x2c], eax
jne 0x473753
lea ecx, [ebp + 0xc]
call fcn.0043dd41
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x473aee
mov edx, dword [ebp + 0x64]
cmp edx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3c], eax
jl 0x47377e
mov esi, dword [ebp + 0x60]
jg 0x473769
cmp esi, ebx
jbe 0x47377e
mov ecx, esi
add ecx, dword [ebp + 4]
mov eax, edx
adc eax, dword [ebp + 8]
cmp eax, ebx
jl 0x4737a3
jg 0x47377e
cmp ecx, dword [ebp - 0x3c]
jbe 0x4737a3
mov esi, dword [ebp - 0x3c]
sub esi, dword [ebp + 4]
mov edx, ebx
sbb edx, dword [ebp + 8]
mov dword [ebp + 0x60], esi
cmp edx, ebx
mov dword [ebp + 0x64], edx
jg 0x4737a3
jl 0x473799
cmp esi, ebx
ja 0x4737a3
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 0x4737c5
jg 0x4737b1
cmp dword [ebp + 0x4c], ebx
jb 0x4737c5
cmp eax, edx
jg 0x4737c5
jl 0x4737bc
cmp dword [ebp + 0x4c], esi
jae 0x4737c5
mov esi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x64], eax
lea eax, [esi + 0x200000]
push eax
lea ecx, [ebp - 0x54]
call fcn.0044406f
mov edi, dword [ebp - 0x54]
cmp edi, ebx
jne 0x4737f3
lea ecx, [ebp + 0xc]
call fcn.0043dd41
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x47496b
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax + 4]
add edi, 0x100000
and edi, 0xfff00000
cmp dword [ebp + 8], ebx
mov dword [ebp - 0xc], edi
jl 0x473820
jg 0x473817
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x3c]
jbe 0x473820
mov eax, dword [ebp - 0x3c]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
add ecx, dword [ebp + 4]
mov eax, esi
cdq
cmp edx, ebx
mov dword [ebp - 0x50], esi
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jl 0x473848
jg 0x473839
cmp eax, ebx
jbe 0x473848
cmp edi, ecx
je 0x473848
push esi
push ecx
push edi
call fcn.00413f99
add esp, 0xc
lea ecx, [ebp + 0xc]
mov byte [ebp + 0x5f], 1
mov byte [ebp - 0x29], 1
call fcn.0043dd41
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x473a43
cmp esi, ebx
je 0x473a43
lea eax, [esi + 2]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x88], 0x20
cmp word [eax], 0x2e
mov byte [ebp - 0x29], 2
mov byte [ebp + 0x5f], 2
jne 0x4738a3
inc eax
inc eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x88], 0x40
push str.EXEDATA
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00453671
mov cx, word [esi]
mov dword [ebp - 0x60], eax
mov eax, dword [0x4d7f98]
mov word [ebp + 0x2c], cx
mov ecx, dword [ebp - 4]
mov word [esi], bx
mov dx, word [ecx]
add esp, 0xc
cmp dx, 0x2e
mov dword [ebp + 0xc], ebx
jne 0x4738e9
cmp word [ecx + 2], bx
jne 0x4738e9
mov eax, dword [0x4d7c7c]
jmp 0x4738fb
cmp dx, bx
je 0x4738fb
push 2
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp + 0xc], eax
cmp eax, ebx
mov cx, word [ebp + 0x2c]
mov word [esi], cx
je 0x473922
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push dword [ebp - 0x60]
push dword [ebp + 0x30]
push eax
call fcn.00414f82
add esp, 0x14
mov edi, eax
cmp dword [ebp + 0xc], ebx
je 0x473930
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp edi, ebx
je 0x47496b
cmp dword [ebp + 0x64], ebx
mov eax, dword [ebp - 0x50]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
jl 0x47396a
jg 0x47394e
cmp dword [ebp + 0x60], ebx
jbe 0x47396a
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x64]
mov ecx, edi
add ecx, dword [ebp + 4]
mov eax, esi
adc eax, dword [ebp + 8]
cmp eax, dword [ebp - 0x14]
jl 0x473990
jg 0x47396a
cmp ecx, dword [ebp - 0x18]
jbe 0x473990
mov edi, dword [ebp - 0x18]
sub edi, dword [ebp + 4]
mov esi, dword [ebp - 0x14]
sbb esi, dword [ebp + 8]
mov dword [ebp + 0x60], edi
cmp esi, ebx
mov dword [ebp + 0x64], esi
jg 0x473990
jl 0x473986
cmp edi, ebx
ja 0x473990
xor edi, edi
xor esi, esi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], esi
mov eax, dword [ebp - 0x50]
add eax, 0x200000
push eax
lea ecx, [ebp - 0x54]
call fcn.0044406f
mov eax, dword [ebp - 0x54]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x47496b
mov ecx, dword [ebp - 0x18]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.004aa0a0
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp dword [ebp + 8], eax
jl 0x4739e1
jg 0x4739d5
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x4739e1
mov eax, dword [ebp - 0x18]
mov dword [ebp + 4], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 4]
add dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x473a09
jg 0x4739f5
cmp dword [ebp + 0x4c], ebx
jb 0x473a09
cmp eax, esi
jg 0x473a09
jl 0x473a00
cmp dword [ebp + 0x4c], edi
jae 0x473a09
mov edi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], eax
mov eax, edi
mov dword [ebp - 0x50], edi
mov edi, dword [ebp + 0x30]
cdq
add edi, 0x100000
and edi, 0xfff00000
cmp edx, ebx
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0xc], edi
jl 0x473a43
jg 0x473a31
cmp eax, ebx
jbe 0x473a43
cmp edi, dword [ebp + 0x30]
je 0x473a43
push eax
push dword [ebp + 0x30]
push edi
call fcn.00413f99
add esp, 0xc
cmp byte [ebp - 5], bl
mov esi, dword [ebp + 0x3c]
mov byte [ebp + 0x55], bl
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x68], esi
je 0x473a68
push 0x40
push 2
push str.SeManageVolumePrivilege
call fcn.004130be
add esp, 0xc
cmp esi, ebx
mov eax, 0x200
mov dword [ebp - 0x20], eax
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov byte [ebp + 0x56], 1
je 0x473a8a
mov byte [ebp + 0x56], bl
cmp byte [ebp + 0x23], bl
je 0x473a9f
cmp byte [ebp - 0x2b], bl
sete byte [ebp + 0x55]
cmp byte [ebp + 0x5f], bl
jne 0x473a9f
mov byte [ebp + 0x23], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x473baa
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.004441a1
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp]
call fcn.004108b2
cmp eax, ebx
jne 0x473b27
lea ecx, [ebp + 0x40]
call fcn.0043dd41
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x58]
call fcn.00402c9f
lea ecx, [ebp - 0x54]
call fcn.0043dd41
mov ebx, 0x80070057
lea ecx, [ebp]
call fcn.0043dd41
lea ecx, [ebp - 0x70]
call fcn.0043dd41
lea ecx, [ebp - 0x7c]
call fcn.00402c9f
lea ecx, [ebp - 0x80]
call fcn.0043dd41
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x70
leave
ret 8
mov edx, dword [eax + 4]
mov ecx, dword [eax + 0x10]
xor eax, eax
cmp eax, ebx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], eax
jg 0x473b42
jl 0x473ad3
cmp ecx, ebx
jbe 0x473ad3
cmp byte [ebp + 0x5f], bl
je 0x473b92
mov esi, dword [ebp + 0x10]
sub ecx, esi
sbb eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x64]
jl 0x473b61
jg 0x473b5b
cmp ecx, dword [ebp + 0x60]
jbe 0x473b61
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x473b7a
jg 0x473b6b
cmp ecx, ebx
jbe 0x473b7a
push dword [ebp + 0x18]
add esi, edx
push edi
push esi
call fcn.00413f99
add esp, 0xc
lea ecx, [ebp + 0x40]
call fcn.0043dd41
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x474e2e
lea ecx, [ebp + 0x40]
call fcn.0043dd41
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x473d0d
cmp byte [ebp + 0x5e], bl
je 0x473bb4
mov dword [ebp - 0x1c], ebx
jmp 0x473bd1
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp]
push eax
call fcn.0044adb1
movsx eax, al
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jl 0x473ae6
cmp byte [ebp + 0x6f], bl
mov ecx, dword [ebp]
jne 0x473c1d
cmp dword [ebp - 0x1c], ebx
jne 0x473c15
cmp word [ecx], 0x5c
jne 0x473c15
cmp word [ecx + 2], 0x5c
jne 0x473c15
mov ax, word [ecx + 4]
cmp ax, 0x3f
je 0x473bfb
cmp ax, 0x2e
jne 0x473c15
cmp word [ecx + 6], 0x5c
jne 0x473c15
cmp ax, 0x3f
jne 0x473c1d
cmp word [ecx + 8], ax
jne 0x473c1d
cmp word [ecx + 0xa], 0x3a
jne 0x473c1d
mov edi, dword [ebp - 0x24]
mov byte [ebp + 0x5e], bl
jmp 0x473c59
cmp byte [ebp + 0x6f], bl
mov byte [ebp + 0x5e], 1
jne 0x473c37
push ebx
push ecx
call fcn.004a98e7
test eax, eax
pop ecx
pop ecx
je 0x473c37
mov byte [ebp + 0x6f], 0x20
cmp dword [ebp + 0x3c], ebx
mov edi, dword [ebp - 0x24]
jne 0x473c7d
push ebx
push ebx
push 4
push ebx
push 7
mov eax, edi
or eax, esi
push eax
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x473c78
push ebx
push ebx
push 3
push ebx
push 3
mov eax, edi
or eax, esi
push eax
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x5e], bl
je 0x473caa
cmp byte [ebp + 0x23], bl
je 0x473caa
cmp dword [ebp - 0x1c], ebx
jg 0x473caa
cmp dword [ebp + 0x68], ebx
jne 0x473ccb
push ebx
push 0x2000000
push 4
push ebx
push 3
mov eax, edi
or eax, esi
push eax
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x473ccb
push ebx
push 0x2000000
push 3
push ebx
push 3
or edi, esi
push edi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x40], ebx
je 0x473ce9
cmp dword [ebp + 0x58], ebx
je 0x473ce9
push dword [ebp + 0x40]
push dword [ebp + 0x58]
push dword [ebp + 0x24]
call fcn.0044cfff
add esp, 0xc
mov dword [ebp + 0x58], ebx
cmp dword [ebp - 0x1c], ebx
je 0x473d0d
cmp dword [ebp + 0x68], ebx
je 0x473d0d
mov edi, 0x200
push edi
push dword [ebp + 0x68]
call fcn.00441575
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
jge 0x473d0d
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
and eax, dword [ebp - 0x20]
cmp byte [ebp + 0x23], 2
mov dword [ebp + 0x2c], eax
jne 0x47491b
cmp dword [ebp + 0x38], ebx
jl 0x473ae6
mov edi, dword [ebp + 0x34]
jg 0x473d3a
cmp edi, ebx
jbe 0x473ae6
cmp dword [ebp - 0x30], ebx
jl 0x473ae6
jg 0x473d4e
cmp dword [ebp - 0x34], ebx
jbe 0x473ae6
cmp dword [ebp + 0x50], ebx
jl 0x473d7d
jg 0x473d5a
cmp dword [ebp + 0x4c], ebx
jb 0x473d7d
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.004aa100
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x473dab
cmp dword [ebp + 0x44], 0xffffffff
jne 0x473d96
mov eax, 0x7fffffff
cmp dword [ebp + 0x48], eax
jne 0x473d96
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], eax
jmp 0x473dab
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x38]
push edi
call fcn.004aa1b0
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edx
push dword [ebp - 0x10]
call fcn.00412ce4
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.0044cf2d
cmp byte [ebp + 0x6d], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
jg 0x473ddd
cmp dword [ebp + 0x68], ebx
jne 0x473ddd
lea ecx, [ebp - 0x10]
call fcn.0043dd41
jmp 0x474963
cmp byte [ebp + 0x22], bl
je 0x473f38
cmp dword [ebp - 0x1c], ebx
jg 0x473f38
cmp byte [ebp + 0x6d], bl
jg 0x473f38
cmp dword [ebp + 0x3c], ebx
jne 0x473e05
lea ecx, [ebp + 0x58]
call fcn.00402c9f
cmp byte [ebp + 0x6e], bl
je 0x473e17
push ebx
push ebx
push dword [ebp]
call fcn.0044ab5d
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x473e50
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x473e59
push ebx
push 0x2000000
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
je 0x473dd0
cmp byte [ebp + 0x21], bl
je 0x473f38
cmp dword [ebp + 0x48], ebx
jl 0x4748f8
jg 0x473e76
cmp dword [ebp + 0x44], ebx
jb 0x473f38
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.004aa1b0
cmp dword [ebp + 0x50], ebx
jl 0x473ea5
jg 0x473e93
cmp dword [ebp + 0x4c], ebx
jb 0x473ea5
cmp edx, dword [ebp + 0x50]
jl 0x473ea5
jg 0x473e9f
cmp eax, dword [ebp + 0x4c]
jbe 0x473ea5
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
add eax, dword [ebp + 0x10]
mov esi, 0x7fffffff
adc edx, dword [ebp + 0x14]
cmp dword [ebp + 0x48], esi
mov dword [ebp - 0x3c], eax
mov edi, edx
jl 0x473ecb
jg 0x473ec2
cmp dword [ebp + 0x44], 0xffffffff
jb 0x473ecb
mov dword [ebp - 0x3c], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x55], bl
jne 0x473eee
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f027
add esp, 0x10
cmp edx, edi
jg 0x473eee
jl 0x473eea
cmp eax, dword [ebp - 0x3c]
jae 0x473eee
mov byte [ebp + 0x55], 1
push ebx
push edi
push dword [ebp - 0x3c]
push dword [ebp + 0x68]
call fcn.0043f027
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x473f1d
cmp edx, edi
jne 0x473f1d
cmp dword [ebp + 0x48], esi
jg 0x473f38
jl 0x474674
cmp dword [ebp + 0x44], 0xffffffff
jae 0x473f38
jmp 0x474674
cmp dword [ebp + 0x48], esi
jg 0x473f38
jl 0x473f2a
cmp dword [ebp + 0x44], 0xffffffff
jae 0x473f38
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f027
add esp, 0x10
cmp dword [ebp + 0x48], ebx
jl 0x4748f8
jg 0x473f4c
cmp dword [ebp + 0x44], ebx
jbe 0x4748f8
cmp dword [ebp + 0x50], ebx
jl 0x4748f8
jg 0x473f60
cmp dword [ebp + 0x4c], ebx
jbe 0x4748f8
cmp byte [ebp + 0x21], bl
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
jne 0x473f7d
cmp byte [ebp + 0x5f], bl
mov byte [ebp + 0x6e], 1
je 0x473f80
mov byte [ebp + 0x6e], bl
cmp dword [ebp - 0x1c], ebx
jle 0x473f95
mov eax, dword [ebp + 0x10]
cdq
idiv dword [ebp - 0x20]
mov eax, edx
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov esi, dword [ebp + 0x10]
sub esi, dword [ebp - 0x28]
mov edi, dword [ebp + 0x14]
sbb edi, dword [ebp - 0x24]
js 0x473fe9
jg 0x473fa9
cmp esi, ebx
jbe 0x473fe9
cmp byte [ebp + 0x6d], bl
jg 0x473fe9
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.0043f027
add esp, 0x10
cmp eax, esi
jne 0x473fc4
cmp edx, edi
je 0x473fe9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x10]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.00402c9f
lea ecx, [ebp - 0x54]
call fcn.0043dd41
jmp 0x473afb
mov eax, dword [ebp - 0x10]
cmp word [eax], 0x26
mov edi, dword [ebp + 4]
mov esi, dword [ebp + 8]
sete byte [ebp + 0x5f]
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x40], ebx
je 0x474109
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.004441a1
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x10]
call fcn.004108b2
cmp eax, ebx
jne 0x474063
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00402c9f
lea ecx, [ebp - 0x10]
call fcn.0043dd41
jmp 0x473ae6
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 4], ecx
xor ecx, ecx
cmp ecx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
jg 0x47409d
jl 0x47407e
cmp eax, ebx
ja 0x47409d
mov dword [ebp + 0xc], 0x80070057
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x47466c
cmp byte [ebp + 0x6d], bl
je 0x4740f6
mov edx, dword [ebp - 0x60]
sub eax, edi
sbb ecx, esi
mov esi, dword [ebp - 0x64]
sub esi, dword [ebp + 0x10]
sbb edx, dword [ebp + 0x14]
cmp edx, dword [ebp + 0x50]
jl 0x4740c4
jg 0x4740be
cmp esi, dword [ebp + 0x4c]
jbe 0x4740c4
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
cmp edx, ecx
jl 0x4740d2
jg 0x4740ce
cmp esi, eax
jbe 0x4740d2
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x474085
jg 0x4740dc
cmp esi, ebx
jbe 0x474085
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
add edi, eax
mov eax, dword [ebp - 0x40]
push esi
add ecx, eax
push edi
push ecx
call fcn.00413f99
add esp, 0xc
jmp 0x474085
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x4741de
cmp byte [ebp + 0x5f], bl
jg 0x4741de
lea eax, [ebp - 0x10]
push eax
call fcn.0044aeaf
pop ecx
push ebx
push ebx
push 3
push ebx
push 3
movsx eax, al
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
mov dword [ebp - 0xc], eax
call fcn.0040569f
cmp dword [ebp + 0x40], ebx
jne 0x474174
push ebx
push 0x2000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
call fcn.0040569f
cmp dword [ebp + 0x40], ebx
jne 0x474174
lea ecx, [ebp + 0x40]
call fcn.00402c9f
jmp 0x473dd0
cmp dword [ebp - 0xc], ebx
je 0x47419f
push 0x200
push dword [ebp + 0x40]
call fcn.00441575
cmp dword [ebp - 0xc], ebx
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
jle 0x47419f
mov eax, edi
cdq
idiv dword [ebp + 0x30]
mov eax, edx
cdq
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
sub edi, dword [ebp + 0x18]
sbb esi, dword [ebp + 0x1c]
mov ecx, edi
mov eax, esi
cmp eax, ebx
jl 0x4741de
jg 0x4741b3
cmp ecx, ebx
jbe 0x4741de
push ebx
push eax
push ecx
push dword [ebp + 0x40]
call fcn.0043f027
add esp, 0x10
cmp eax, edi
jne 0x4741c9
cmp edx, esi
je 0x4741de
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x40]
mov ebx, eax
call fcn.00402c9f
jmp 0x473fcc
cmp dword [ebp - 0x1c], ebx
jle 0x474212
mov eax, dword [ebp - 0x20]
cdq
mov esi, eax
add eax, dword [ebp - 0x34]
mov edi, edx
mov ecx, edx
adc ecx, dword [ebp - 0x30]
push edi
sub eax, 1
push esi
sbb ecx, ebx
push ecx
push eax
call fcn.004aa100
push edi
push esi
push edx
push eax
call fcn.004aa1b0
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x47421e
mov eax, dword [ebp - 0x34]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp + 0x48], eax
cmp dword [ebp - 0xc], ebx
jle 0x47424c
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.004aa100
push edi
push esi
push edx
push eax
call fcn.004aa1b0
jmp 0x474252
mov eax, dword [ebp + 0x34]
mov edx, dword [ebp + 0x38]
cmp eax, dword [ebp + 0x44]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
jne 0x474262
cmp edx, dword [ebp + 0x48]
je 0x47426c
add eax, dword [ebp + 0x44]
mov ecx, edx
adc ecx, dword [ebp + 0x48]
jmp 0x47426e
mov ecx, edx
add eax, 0x8000
adc ecx, ebx
mov esi, eax
add esi, 0x2800
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp + 8], ecx
adc ecx, ebx
cmp dword [ebp - 0x20], eax
mov dword [ebp - 0x74], ecx
jle 0x474293
mov eax, dword [ebp - 0x20]
cdq
lea edi, [esi + eax]
lea eax, [edi + 0x100000]
push eax
lea ecx, [ebp + 0x2c]
mov dword [ebp - 0x74], edx
call fcn.0044404a
mov eax, dword [ebp + 0x2c]
add eax, 0x100000
and eax, 0xfff00000
push edi
push dword [ebp - 0x6c]
add esi, eax
push eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0xc], esi
call fcn.004aa0a0
add esp, 0xc
cmp dword [ebp + 0x1c], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp - 0x60], ebx
mov byte [ebp + 0x6f], bl
jl 0x47433c
jg 0x4742e3
cmp dword [ebp + 0x18], ebx
jbe 0x47433c
mov edi, dword [ebp + 0x3c]
push ebx
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x30]
mov dword [ebp - 0x18], ebx
push edi
push dword [ebp + 0x40]
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0x30]
cdq
sub eax, dword [ebp + 0x18]
sbb edx, dword [ebp + 0x1c]
sub dword [ebp + 0x4c], eax
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
sbb dword [ebp + 0x50], edx
cmp dword [ebp + 0x50], ebx
jg 0x47432c
jl 0x474320
cmp dword [ebp + 0x4c], ebx
jae 0x47432c
add eax, dword [ebp + 0x4c]
adc edx, dword [ebp + 0x50]
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
push eax
mov eax, dword [ebp + 0x18]
add eax, edi
push eax
push edi
call fcn.00413f99
add esp, 0xc
cmp dword [ebp - 0x24], ebx
jl 0x4743b7
jg 0x474348
cmp dword [ebp - 0x28], ebx
jbe 0x4743b7
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f027
add esp, 0x10
push ebx
mov edi, eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0x74], edx
push esi
push dword [ebp + 0x68]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp + 0x60]
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp - 0x28]
push eax
add ecx, eax
push ecx
call fcn.00413f99
push dword [ebp - 0x28]
push esi
push dword [ebp + 0x3c]
call fcn.00413f99
mov eax, dword [ebp - 0x28]
add dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x24]
push ebx
push dword [ebp - 0x74]
adc dword [ebp + 0x64], eax
push edi
push dword [ebp + 0x68]
call fcn.0043f027
add esp, 0x28
cmp byte [ebp + 0x21], bl
je 0x4743b7
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x5e], 1
jg 0x474569
jl 0x4743cf
cmp dword [ebp + 0x60], ebx
ja 0x474569
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x474574
jg 0x4743e5
cmp dword [ebp + 0x4c], ebx
jbe 0x474574
cmp byte [ebp + 0x5e], bl
je 0x474574
cmp byte [ebp + 0x6e], bl
je 0x474504
mov esi, dword [ebp - 0x44]
cmp esi, eax
jg 0x47440d
jl 0x474408
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp + 0x4c]
ja 0x47440d
mov ecx, dword [ebp - 0x48]
jmp 0x474412
mov ecx, dword [ebp + 0x4c]
mov esi, eax
mov edx, ecx
add edx, dword [ebp + 0x60]
mov eax, esi
adc eax, dword [ebp + 0x64]
cmp eax, dword [ebp + 8]
jl 0x474434
jg 0x474428
cmp edx, dword [ebp + 4]
jbe 0x474434
mov ecx, dword [ebp + 4]
sub ecx, dword [ebp + 0x60]
mov esi, dword [ebp + 8]
sbb esi, dword [ebp + 0x64]
cmp dword [ebp - 0xc], ebx
jle 0x47445a
mov eax, dword [ebp + 0x30]
cdq
mov edi, eax
mov eax, dword [ebp + 0x30]
add edi, ecx
mov dword [ebp - 0x68], edx
adc dword [ebp - 0x68], esi
dec eax
not eax
cdq
and edi, eax
mov eax, dword [ebp - 0x68]
and eax, edx
mov dword [ebp - 0x30], eax
jmp 0x47445f
mov edi, ecx
mov dword [ebp - 0x30], esi
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x34], edi
je 0x4744ba
mov esi, dword [ebp - 0x3c]
sub esi, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x38]
sbb edi, dword [ebp - 0x58]
cmp edi, dword [ebp - 0x30]
jl 0x474485
jg 0x47447f
cmp esi, dword [ebp - 0x34]
jbe 0x474485
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x4744ac
jg 0x474491
cmp dword [ebp - 0x34], ebx
jbe 0x4744ac
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x5c]
add ecx, eax
mov eax, dword [ebp + 0x60]
push esi
push ecx
mov ecx, dword [ebp + 0x3c]
add eax, ecx
push eax
call fcn.00413f99
add esp, 0xc
add dword [ebp - 0x5c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
adc dword [ebp - 0x58], edi
jmp 0x4744de
mov ecx, dword [ebp + 0x3c]
push ebx
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp + 0x60]
push edi
add eax, ecx
push eax
push dword [ebp + 0x40]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
cmp edi, ebx
jl 0x474574
jg 0x4744f0
cmp esi, ebx
jbe 0x474574
cmp edi, dword [ebp + 0x50]
jl 0x47454e
jg 0x4744fc
cmp esi, dword [ebp + 0x4c]
jbe 0x47454e
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x50]
jmp 0x474548
cmp dword [ebp + 0x48], eax
jg 0x47451b
jl 0x474513
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x4c]
ja 0x47451b
mov esi, dword [ebp + 0x44]
mov edi, dword [ebp + 0x48]
jmp 0x474520
mov esi, dword [ebp + 0x4c]
mov edi, eax
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
add ecx, esi
adc eax, edi
cmp eax, dword [ebp + 8]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
jl 0x47454e
jg 0x47453c
cmp ecx, dword [ebp + 4]
jbe 0x47454e
mov esi, dword [ebp + 4]
sub esi, dword [ebp + 0x60]
mov edi, dword [ebp + 8]
sbb edi, dword [ebp + 0x64]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x47455d
cmp dword [ebp + 0x50], 0x7fffffff
je 0x474563
sub dword [ebp + 0x4c], esi
sbb dword [ebp + 0x50], edi
add dword [ebp + 0x60], esi
adc dword [ebp + 0x64], edi
mov eax, dword [ebp + 0x3c]
mov dword [ebp - 0x24], eax
jmp 0x47486f
cmp dword [ebp + 0x64], ebx
jl 0x4748c4
jg 0x474588
cmp dword [ebp + 0x60], ebx
jbe 0x4748c4
mov eax, dword [ebp + 0x3c]
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x48]
cmp eax, ecx
jg 0x4745b0
jl 0x4745a5
mov edx, dword [ebp + 0x44]
cmp edx, dword [ebp + 0x60]
ja 0x4745b0
mov ecx, dword [ebp + 0x44]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
jmp 0x4745b9
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ecx
cmp dword [ebp - 0x1c], ebx
mov dword [ebp + 0x24], ebx
jle 0x4745da
mov eax, dword [ebp - 0x20]
cdq
push edx
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004ac450
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jmp 0x4745e0
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
mov edi, dword [ebp + 0x34]
sub edi, dword [ebp + 0x18]
mov esi, dword [ebp + 0x38]
sbb esi, dword [ebp + 0x1c]
mov dword [ebp - 0x78], edi
js 0x474681
jg 0x4745ff
cmp edi, ebx
jbe 0x474681
cmp byte [ebp + 0x6d], bl
je 0x474627
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push edi
push dword [ebp - 0x24]
add ecx, eax
push ecx
call fcn.00413f99
add esp, 0xc
add dword [ebp + 0x10], edi
mov dword [ebp + 0x24], edi
adc dword [ebp + 0x14], esi
jmp 0x474813
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.004426e8
add esp, 0x14
test eax, eax
jne 0x474813
cmp byte [ebp + 0x56], bl
jne 0x474784
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x474661
xor eax, eax
inc eax
mov dword [ebp + 0xc], eax
lea ecx, [ebp + 0x2c]
call fcn.0043dd41
lea ecx, [ebp + 0x40]
call fcn.00402c9f
lea ecx, [ebp - 0x10]
call fcn.0043dd41
jmp 0x474e2e
cmp dword [ebp + 0x1c], ebx
jl 0x474744
jg 0x474695
cmp dword [ebp + 0x18], ebx
jbe 0x474744
push dword [ebp - 0x20]
push ebx
push dword [ebp + 0xc]
call fcn.004aa0a0
mov eax, dword [ebp - 0x20]
cdq
push 1
mov esi, eax
push ebx
mov edi, edx
mov dword [ebp - 0x98], esi
sub esi, dword [ebp + 0x18]
push ebx
push dword [ebp + 0x68]
mov dword [ebp - 0x94], edi
sbb edi, dword [ebp + 0x1c]
call fcn.0043f027
add esp, 0x1c
push ebx
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0x8c], edx
push dword [ebp + 0xc]
mov dword [ebp - 0x18], ebx
push dword [ebp + 0x68]
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x18]
add eax, ecx
mov ecx, dword [ebp - 0x24]
push esi
push eax
mov eax, dword [ebp + 0x60]
add eax, ecx
push eax
call fcn.00413f99
mov eax, dword [ebp - 0x98]
add dword [ebp + 0x60], esi
push ebx
push dword [ebp - 0x8c]
adc dword [ebp + 0x64], edi
push dword [ebp - 0x90]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x94]
push dword [ebp + 0x68]
mov dword [ebp + 0x38], eax
call fcn.0043f027
mov edi, dword [ebp - 0x78]
add esp, 0x1c
cmp byte [ebp + 0x21], bl
je 0x474744
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x24], ebx
jl 0x47484c
jg 0x47475b
cmp dword [ebp + 0x34], ebx
jbe 0x47484c
push ebx
lea eax, [ebp + 0x24]
push eax
push dword [ebp + 0x34]
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x47484c
cmp byte [ebp + 0x56], bl
je 0x4748bd
mov byte [ebp + 0x56], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov al, byte [ebp + 0x56]
lea ecx, [ebp + 0x58]
mov byte [ebp + 0x57], al
mov byte [ebp + 0x56], bl
mov dword [ebp + 0x24], ebx
call fcn.00402c9f
push ebx
push ebx
push 4
push ebx
push ebx
mov esi, 0xc0000000
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x4747ef
push ebx
push ebx
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x4747ef
push ebx
mov eax, 0x2000000
push eax
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.004426e8
add esp, 0x14
test eax, eax
je 0x47464e
cmp byte [ebp + 0x57], 2
je 0x47484c
cmp dword [ebp + 0x24], edi
jbe 0x47481b
mov dword [ebp + 0x24], edi
cmp byte [ebp + 0x6f], bl
je 0x474832
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004aa0a0
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x24]
sub dword [ebp + 0x34], eax
mov byte [ebp + 0x56], bl
sbb dword [ebp + 0x38], ebx
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
add dword [ebp - 0x24], edi
jmp 0x474681
cmp byte [ebp + 0x6f], bl
je 0x474863
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004aa0a0
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x24]
add dword [ebp - 0x24], eax
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
mov eax, dword [ebp + 0x48]
cmp dword [ebp + 0x64], eax
jg 0x474591
jl 0x474889
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x60], eax
jae 0x474591
cmp dword [ebp + 0x64], ebx
jl 0x4743cf
jg 0x47489d
cmp dword [ebp + 0x60], ebx
jbe 0x4743cf
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x24]
je 0x4743cf
push dword [ebp + 0x60]
push dword [ebp - 0x24]
push eax
call fcn.00413f99
add esp, 0xc
jmp 0x4743cf
mov dword [ebp - 0x60], 1
cmp dword [ebp - 0x60], ebx
jne 0x474654
cmp dword [ebp + 0x50], ebx
jl 0x4748f0
jg 0x4748d9
cmp dword [ebp + 0x4c], ebx
jbe 0x4748f0
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x474654
cmp dword [ebp + 0x50], 0x7fffffff
jne 0x474654
mov dword [ebp + 0xc], ebx
jmp 0x474664
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x474674
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0x68]
call fcn.0043f027
add esp, 0x10
jmp 0x474674
cmp byte [ebp + 0x6d], bl
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp + 0x30], ebx
jne 0x474aa2
cmp dword [ebp - 0x1c], 0x11
jne 0x474978
lea eax, [ebp - 0x48]
push eax
push ebx
push dword [ebp + 0x68]
call fcn.0045359d
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jg 0x4749e2
jl 0x474963
cmp eax, ebx
jae 0x4749e2
lea ecx, [ebp + 0x58]
call fcn.00402c9f
lea ecx, [ebp - 0x54]
call fcn.0043dd41
jmp 0x4736dd
cmp dword [ebp + 0x68], ebx
je 0x4749e8
cmp dword [ebp - 0x1c], ebx
jne 0x4749bd
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f027
mov ecx, dword [ebp + 0x10]
add esp, 0x10
mov edi, eax
mov eax, dword [ebp + 0x14]
sub ecx, 0x400
mov esi, edx
sbb eax, ebx
cmp esi, eax
jg 0x4749e8
jl 0x4749ad
cmp edi, ecx
jae 0x4749e8
cmp dword [ebp + 0x3c], ebx
jne 0x4749e8
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4749e8
push dword [ebp - 0x1c]
push dword [ebp + 0x68]
call fcn.00442641
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x4749e8
jl 0x4749d8
cmp edi, ebx
jae 0x4749e8
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x4749e8
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
cmp byte [ebp - 0x2c], bl
je 0x474a13
cmp dword [ebp + 0x60], 0xfffffffc
jne 0x474a13
mov ecx, edi
sub ecx, dword [ebp + 0x10]
mov eax, esi
sbb eax, dword [ebp + 0x14]
mov dword [ebp + 0x60], ecx
cmp eax, ebx
mov dword [ebp + 0x64], eax
jg 0x474a13
jl 0x474a0d
cmp ecx, ebx
jae 0x474a13
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x68], ebx
jne 0x474a80
cmp dword [ebp - 0x1c], ebx
jne 0x474a73
cmp byte [ebp + 0x6e], bl
je 0x474a33
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp]
call fcn.0044ab5d
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x474a8a
push ebx
push 0x2000000
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x474a8a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x473fd4
cmp byte [ebp + 0x6f], bl
je 0x474a92
cmp dword [ebp - 0x1c], ebx
jne 0x474a97
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp dword [ebp - 0x1c], ebx
je 0x474aa2
mov eax, dword [ebp + 0x10]
xor edx, edx
div dword [ebp - 0x20]
mov dword [ebp + 0x30], edx
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x14]
adc ecx, dword [ebp - 0x38]
sub edi, eax
sbb esi, ecx
cmp byte [ebp + 0x6d], bl
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], esi
jne 0x474b02
movzx eax, word [ebp + 0x30]
mov ecx, dword [ebp + 0x10]
cdq
sub ecx, eax
mov eax, dword [ebp + 0x14]
push ebx
sbb eax, edx
push eax
push ecx
push dword [ebp + 0x68]
call fcn.0043f027
add esp, 0x10
cmp edx, ebx
jg 0x474b02
jl 0x474aed
cmp eax, ebx
jae 0x474b02
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.0043dd41
jmp 0x473fd4
cmp byte [ebp - 0x29], bl
je 0x474b5f
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x44]
jl 0x474b1f
jg 0x474b19
cmp eax, dword [ebp + 0x18]
jbe 0x474b1f
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
cmp byte [ebp + 0x6d], bl
je 0x474b3e
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x40]
push dword [ebp - 0xc]
add ecx, eax
push ecx
call fcn.00413f99
add esp, 0xc
jmp 0x474e18
cmp ecx, ebx
jl 0x474e18
jg 0x474b50
cmp eax, ebx
jbe 0x474e18
push dword [ebp + 0x2c]
movzx edx, word [ebp + 0x30]
push edx
push ecx
push eax
push dword [ebp - 0xc]
jmp 0x474bcc
mov ecx, dword [ebp + 0x64]
cmp ecx, ebx
jl 0x474b81
mov eax, dword [ebp + 0x60]
jg 0x474b6f
cmp eax, ebx
jb 0x474b81
cmp ecx, dword [ebp + 0x48]
jg 0x474b81
jl 0x474b7b
cmp eax, dword [ebp + 0x44]
jae 0x474b81
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], ecx
cmp byte [ebp + 0x57], bl
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x78], eax
je 0x474bdc
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x3c]
call fcn.00444129
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x48]
jl 0x474bb4
jg 0x474bb1
cmp eax, dword [ebp + 0x44]
jbe 0x474bb4
mov ecx, dword [ebp + 0x44]
cmp ecx, ebx
jle 0x474e18
push dword [ebp - 0x1c]
movzx eax, word [ebp + 0x30]
push eax
mov eax, ecx
cdq
push edx
push eax
push dword [ebp + 0x3c]
push dword [ebp + 0x68]
call fcn.00453754
add esp, 0x18
jmp 0x474e18
mov esi, dword [ebp - 0x20]
lea eax, [esi + esi]
push eax
lea ecx, [ebp - 0x60]
call fcn.0044404a
mov eax, dword [ebp - 0x60]
add eax, esi
lea edi, [esi - 1]
not edi
and edi, eax
movzx eax, word [ebp + 0x30]
sub esi, eax
cmp dword [ebp + 0x48], ebx
mov al, byte [ebp - 0x2a]
mov dword [ebp - 0xc], esi
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
mov byte [ebp + 0x57], bl
mov byte [ebp + 0x6e], al
jl 0x474e10
jle 0x474e07
cmp dword [ebp + 0x38], ebx
jg 0x474c36
jl 0x474c2a
cmp dword [ebp + 0x34], ebx
ja 0x474c36
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x474e10
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
jle 0x474e10
cmp dword [ebp + 0x48], ebx
jl 0x474daf
jg 0x474c56
cmp dword [ebp + 0x44], ebx
jbe 0x474daf
cmp dword [ebp + 0x38], ebx
jg 0x474d89
jl 0x474c6a
cmp dword [ebp + 0x34], ebx
ja 0x474d89
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x474daf
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
pop ecx
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
jne 0x474cea
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.0045030b
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x474cea
cmp si, 0x2a
je 0x474d83
cmp si, 0x28
je 0x474d12
cmp si, 0x30
jb 0x474cd1
cmp si, 0x39
jbe 0x474cf2
cmp byte [ebp + 0x6e], bl
je 0x474ce5
or esi, 0x20
cmp si, 0x61
jb 0x474ce5
cmp si, 0x7a
jbe 0x474cf2
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov si, word [eax]
cmp si, bx
jne 0x474cb5
cmp word [eax], 0x30
jne 0x474d29
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x474d29
add eax, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], eax
jmp 0x474d2e
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
call fcn.0045030b
pop ecx
pop ecx
jmp 0x474d83
cmp byte [ebp + 0x6e], bl
je 0x474d67
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x24], 2
call fcn.00444dda
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.00443c3d
add esp, 0x10
test al, al
jne 0x474d7b
mov al, byte [ebp - 0x2a]
mov byte [ebp + 0x6e], al
jmp 0x474d7b
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004504ce
cmp eax, 1
pop ecx
pop ecx
jl 0x474daf
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x40]
je 0x474daf
mov al, byte [ebp + 0x18]
mov byte [ebp + 0x57], al
add dword [ebp + 0x34], 0xffffffff
mov eax, dword [ebp - 4]
mov cl, byte [ebp + 0x57]
adc dword [ebp + 0x38], 0xffffffff
mov byte [eax + edi], cl
inc eax
add dword [ebp + 0x44], 0xffffffff
mov dword [ebp - 4], eax
adc dword [ebp + 0x48], 0xffffffff
cmp eax, dword [ebp - 0xc]
jl 0x474c42
mov esi, dword [ebp - 4]
cmp esi, ebx
jle 0x474e10
cmp byte [ebp + 0x6d], bl
je 0x474dd9
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push esi
add ecx, eax
push edi
push ecx
call fcn.00413f99
mov eax, esi
cdq
add esp, 0xc
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp 0x474df2
push dword [ebp + 0x2c]
movzx eax, word [ebp + 0x30]
push eax
mov eax, esi
cdq
push edx
push eax
push edi
push dword [ebp + 0x68]
call fcn.00453754
add esp, 0x18
cmp dword [ebp + 0x48], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0xc], 0x200
jg 0x474c1e
jl 0x474e10
cmp dword [ebp + 0x44], ebx
ja 0x474c1e
lea ecx, [ebp - 0x60]
call fcn.0043dd41
cmp dword [ebp + 0x68], ebx
je 0x474e26
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
cmp byte [ebp + 0x55], bl
je 0x474e41
cmp dword [ebp + 0x68], ebx
je 0x474e41
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp byte [ebp - 5], bl
je 0x474e8e
cmp dword [ebp + 0x68], ebx
je 0x474e8e
push 2
lea ecx, [ebp - 0x78]
push ecx
push ebx
xor eax, eax
push eax
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x474e8e
push ebx
push 0x4d8204
push str.Kernel32.DLL
push str.SetFileValidData
call fcn.0043f18a
mov eax, dword [0x4d8204]
add esp, 0x10
cmp eax, ebx
je 0x474e8e
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x68]
call eax
lea ecx, [ebp + 0x58]
call fcn.00402c9f
lea ecx, [ebp - 0x54]
call fcn.0043dd41
mov ebx, dword [ebp + 0xc]
jmp 0x473afb