Function at 0x475a7d
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.0044d260
push 1
push 2
push str.SeBackupPrivilege
call fcn.004136a0
push 0x10
push 2
push str.SeRestorePrivilege
call fcn.004136a0
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 0x475b1c
mov eax, ecx
call fcn.0043e785
test al, al
jne 0x475b24
cmp cx, 0x2a
jne 0x475aff
mov al, byte [edx]
mov byte [ebp + 0x6f], al
jmp 0x475b17
cmp cx, 0x2e
jne 0x475b0c
mov al, byte [edx]
mov byte [ebp + 0x57], al
jmp 0x475b17
cmp cx, 0x23
jne 0x475b17
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 0x475ae7
lea eax, [ebp + 0x78]
push eax
call fcn.0043e7bd
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x40], esi
call fcn.00444f6c
cmp word [esi], 0x2d
jne 0x475b8c
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x475b71
mov eax, ecx
call fcn.0043e785
test al, al
jne 0x475b71
cmp cx, 0x2c
je 0x475b71
lea eax, [ebp - 0x40]
push eax
call fcn.00409344
mov esi, dword [ebp - 0x40]
cmp word [esi], 0x2d
pop ecx
je 0x475b42
cmp esi, dword [ebp + 0x78]
je 0x475b8c
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.004567e7
mov eax, dword [ebp - 0x70]
push 1
lea ecx, [ebp]
mov dword [ebp + 0x78], eax
call fcn.00444f8a
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 0x475db8
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4cca04
call fcn.00446fac
add esp, 0xc
test al, al
je 0x475c0f
mov byte [ebp - 0x2a], 1
jmp 0x475db8
push 4
lea eax, [ebp + 0x78]
push eax
push str._dir
call fcn.00446fac
add esp, 0xc
test al, al
je 0x475c32
mov dword [ebp - 0x24], 0x80000000
jmp 0x475db8
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.0044705f
add esp, 0xc
test al, al
jne 0x475dca
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4cc91c
call fcn.0044705f
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x475d06
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp + 0xc], esi
call fcn.00409344
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp - 0xc], ebx
jne 0x475cba
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.00405b76
mov eax, dword [ebp - 4]
cmp word [eax], bx
pop ecx
je 0x475ca7
mov word [eax], bx
mov ecx, dword [ebp + 0x24]
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x40]
call fcn.0044d65a
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004412ad
mov eax, dword [ebp - 0x6c]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x475cf6
cmp eax, ebx
je 0x475cf6
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov dword [ebp + 0x40], ebx
call fcn.0043ee31
test eax, eax
pop ecx
pop ecx
je 0x475cf6
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x475cf6
mov dword [ebp + 0x3c], esi
lea ecx, [ebp - 0xc]
call fcn.0043e825
mov esi, dword [ebp - 0x40]
jmp 0x475db8
push 3
push eax
push 0x4cc9f8
call fcn.00446fac
add esp, 0xc
test al, al
je 0x475d23
mov byte [ebp - 5], 1
jmp 0x475db8
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4cc9f4
call fcn.00446fac
add esp, 0xc
test al, al
je 0x475d40
mov byte [ebp + 0x6d], 1
jmp 0x475db8
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00446fac
add esp, 0xc
test al, al
je 0x475d5d
mov byte [ebp + 0x6e], 1
jmp 0x475db8
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00446fac
add esp, 0xc
test al, al
je 0x475d7a
mov byte [ebp + 0x22], 1
jmp 0x475db8
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4cc9e8
call fcn.00446fac
add esp, 0xc
test al, al
jne 0x475e0f
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4c6ba8
call fcn.00446fac
add esp, 0xc
test al, al
je 0x475dae
mov byte [ebp + 0x5e], 1
jmp 0x475db8
lea eax, [ebp + 0x78]
push eax
call fcn.00409344
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x475bef
jmp 0x476148
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00409344
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.004412ad
add esp, 0xc
cmp dword [ebp - 0x48], edi
je 0x4766f0
cmp dword [ebp - 0x48], ebx
je 0x4766f0
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4766f0
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x23], 1
mov byte [ebp + 0x6f], 1
jne 0x476148
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x476115
mov eax, ecx
call fcn.0043e785
test al, al
jne 0x476115
cmp cx, 0x2c
je 0x476115
mov eax, dword [ebp + 0x78]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.00409344
push 4
push dword [ebp + 0x78]
push 0x4cc9e0
call fcn.0043fc19
add esp, 0x10
test al, al
je 0x475eaa
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.00451c15
test eax, eax
pop ecx
pop ecx
jle 0x476105
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 0x476105
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x475ee7
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.00451c15
test eax, eax
pop ecx
pop ecx
jle 0x476105
mov eax, dword [ebp + 0x28]
cdq
jmp 0x475e9f
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x475f2d
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.00451c15
test eax, eax
pop ecx
pop ecx
jle 0x476105
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x476105
push 7
push dword [ebp + 0x78]
push str._count
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x475f75
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.00451c15
test eax, eax
pop ecx
pop ecx
jle 0x476105
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x48], eax
jmp 0x476105
push 5
push dword [ebp + 0x78]
push str._len
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x475fbd
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.00451c15
test eax, eax
pop ecx
pop ecx
jle 0x476105
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x50], eax
jmp 0x476105
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x475ffa
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x476105
mov byte [ebp - 0x2b], 1
jmp 0x476105
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x476048
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.00451c15
test eax, eax
pop ecx
pop ecx
jle 0x476105
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x58], eax
jmp 0x476105
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x476093
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.00451c15
test eax, eax
pop ecx
pop ecx
jle 0x476105
mov eax, dword [ebp + 0x28]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 8], eax
jmp 0x476105
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00446fac
add esp, 0xc
test al, al
je 0x4760b0
mov byte [ebp + 0x6e], 1
jmp 0x476105
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00446fac
add esp, 0xc
test al, al
je 0x4760cd
mov byte [ebp + 0x22], 1
jmp 0x476105
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.00446fac
add esp, 0xc
test al, al
je 0x4760ea
mov byte [ebp + 0x22], 0x10
jmp 0x476105
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4cc9f8
call fcn.00446fac
add esp, 0xc
test al, al
je 0x476105
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x475e24
cmp dword [ebp + 8], ebx
jg 0x476148
jl 0x476121
cmp dword [ebp + 4], ebx
jae 0x476148
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004ae930
cmp edx, ebx
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
jg 0x476148
jl 0x476142
cmp eax, ebx
jae 0x476148
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00446fac
add esp, 0xc
test al, al
je 0x476163
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.0043993e
cmp word [eax], 0x2c
jne 0x4766eb
mov eax, dword [ebp]
mov ax, word [eax]
cmp ax, bx
je 0x4766eb
cmp ax, 0x26
jne 0x47619c
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x4761a4
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.004567e7
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00451c15
cmp dword [ebp + 0x14], ebx
pop ecx
pop ecx
jg 0x4761df
jl 0x4766eb
cmp dword [ebp + 0x10], ebx
jb 0x4766eb
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 0x47621d
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043e7bd
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.00451c15
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.0043ed64
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x476239
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x47625f
jg 0x476247
cmp dword [ebp + 0x4c], ebx
jb 0x47625f
cmp dword [ebp + 0x64], eax
jl 0x47625f
jg 0x476256
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x4c]
jbe 0x47625f
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043e7bd
push dword [ebp + 0x78]
call fcn.0041104a
mov esi, dword [ebp + 0x78]
push esi
push 0x4cc990
mov dword [ebp - 4], esi
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call fcn.0043fc58
add esp, 0x10
cmp al, bl
mov byte [ebp + 0x21], al
jne 0x4762c5
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 4]
push eax
call fcn.004483b1
test eax, eax
pop ecx
pop ecx
je 0x4762c5
mov eax, dword [ebp - 4]
mov ax, word [eax]
cmp ax, bx
je 0x4762b5
cmp ax, 0x2c
jne 0x4762c5
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 0x4762da
xor ebx, ebx
inc ebx
jmp 0x4766f0
lea eax, [ebp - 4]
push 1
push eax
mov dword [ebp - 4], esi
call fcn.0044d18c
pop ecx
pop ecx
lea ecx, [ebp - 0x54]
mov esi, eax
call fcn.00444df8
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 0x47645d
mov esi, 0x4ddd50
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0xc]
call fcn.00444f6c
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.00410e94
cmp eax, ebx
mov dword [ebp + 0x2c], eax
jne 0x476348
lea ecx, [ebp + 0xc]
call fcn.0043e825
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4766e3
mov edx, dword [ebp + 0x64]
cmp edx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3c], eax
jl 0x476373
mov esi, dword [ebp + 0x60]
jg 0x47635e
cmp esi, ebx
jbe 0x476373
mov ecx, esi
add ecx, dword [ebp + 4]
mov eax, edx
adc eax, dword [ebp + 8]
cmp eax, ebx
jl 0x476398
jg 0x476373
cmp ecx, dword [ebp - 0x3c]
jbe 0x476398
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 0x476398
jl 0x47638e
cmp esi, ebx
ja 0x476398
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 0x4763ba
jg 0x4763a6
cmp dword [ebp + 0x4c], ebx
jb 0x4763ba
cmp eax, edx
jg 0x4763ba
jl 0x4763b1
cmp dword [ebp + 0x4c], esi
jae 0x4763ba
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.00444e3a
mov edi, dword [ebp - 0x54]
cmp edi, ebx
jne 0x4763e8
lea ecx, [ebp + 0xc]
call fcn.0043e825
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x477560
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 0x476415
jg 0x47640c
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x3c]
jbe 0x476415
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 0x47643d
jg 0x47642e
cmp eax, ebx
jbe 0x47643d
cmp edi, ecx
je 0x47643d
push esi
push ecx
push edi
call fcn.0041457b
add esp, 0xc
lea ecx, [ebp + 0xc]
mov byte [ebp + 0x5f], 1
mov byte [ebp - 0x29], 1
call fcn.0043e825
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x476638
cmp esi, ebx
je 0x476638
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 0x476498
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.00455169
mov cx, word [esi]
mov dword [ebp - 0x60], eax
mov eax, dword [0x4dcfa8]
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 0x4764de
cmp word [ecx + 2], bx
jne 0x4764de
mov eax, dword [0x4dcc88]
jmp 0x4764f0
cmp dx, bx
je 0x4764f0
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 0x476517
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push dword [ebp - 0x60]
push dword [ebp + 0x30]
push eax
call fcn.004155b1
add esp, 0x14
mov edi, eax
cmp dword [ebp + 0xc], ebx
je 0x476525
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp edi, ebx
je 0x477560
cmp dword [ebp + 0x64], ebx
mov eax, dword [ebp - 0x50]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
jl 0x47655f
jg 0x476543
cmp dword [ebp + 0x60], ebx
jbe 0x47655f
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 0x476585
jg 0x47655f
cmp ecx, dword [ebp - 0x18]
jbe 0x476585
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 0x476585
jl 0x47657b
cmp edi, ebx
ja 0x476585
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.00444e3a
mov eax, dword [ebp - 0x54]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x477560
mov ecx, dword [ebp - 0x18]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.004ae820
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp dword [ebp + 8], eax
jl 0x4765d6
jg 0x4765ca
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x4765d6
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 0x4765fe
jg 0x4765ea
cmp dword [ebp + 0x4c], ebx
jb 0x4765fe
cmp eax, esi
jg 0x4765fe
jl 0x4765f5
cmp dword [ebp + 0x4c], edi
jae 0x4765fe
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 0x476638
jg 0x476626
cmp eax, ebx
jbe 0x476638
cmp edi, dword [ebp + 0x30]
je 0x476638
push eax
push dword [ebp + 0x30]
push edi
call fcn.0041457b
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 0x47665d
push 0x40
push 2
push str.SeManageVolumePrivilege
call fcn.004136a0
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 0x47667f
mov byte [ebp + 0x56], bl
cmp byte [ebp + 0x23], bl
je 0x476694
cmp byte [ebp - 0x2b], bl
sete byte [ebp + 0x55]
cmp byte [ebp + 0x5f], bl
jne 0x476694
mov byte [ebp + 0x23], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x47679f
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00444f6c
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp]
call fcn.00410e94
cmp eax, ebx
jne 0x47671c
lea ecx, [ebp + 0x40]
call fcn.0043e825
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x58]
call fcn.00402cc5
lea ecx, [ebp - 0x54]
call fcn.0043e825
mov ebx, 0x80070057
lea ecx, [ebp]
call fcn.0043e825
lea ecx, [ebp - 0x70]
call fcn.0043e825
lea ecx, [ebp - 0x7c]
call fcn.00402cc5
lea ecx, [ebp - 0x80]
call fcn.0043e825
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 0x476737
jl 0x4766c8
cmp ecx, ebx
jbe 0x4766c8
cmp byte [ebp + 0x5f], bl
je 0x476787
mov esi, dword [ebp + 0x10]
sub ecx, esi
sbb eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x64]
jl 0x476756
jg 0x476750
cmp ecx, dword [ebp + 0x60]
jbe 0x476756
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x47676f
jg 0x476760
cmp ecx, ebx
jbe 0x47676f
push dword [ebp + 0x18]
add esi, edx
push edi
push esi
call fcn.0041457b
add esp, 0xc
lea ecx, [ebp + 0x40]
call fcn.0043e825
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x477a23
lea ecx, [ebp + 0x40]
call fcn.0043e825
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x476902
cmp byte [ebp + 0x5e], bl
je 0x4767a9
mov dword [ebp - 0x1c], ebx
jmp 0x4767c6
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp]
push eax
call fcn.0044c737
movsx eax, al
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jl 0x4766db
cmp byte [ebp + 0x6f], bl
mov ecx, dword [ebp]
jne 0x476812
cmp dword [ebp - 0x1c], ebx
jne 0x47680a
cmp word [ecx], 0x5c
jne 0x47680a
cmp word [ecx + 2], 0x5c
jne 0x47680a
mov ax, word [ecx + 4]
cmp ax, 0x3f
je 0x4767f0
cmp ax, 0x2e
jne 0x47680a
cmp word [ecx + 6], 0x5c
jne 0x47680a
cmp ax, 0x3f
jne 0x476812
cmp word [ecx + 8], ax
jne 0x476812
cmp word [ecx + 0xa], 0x3a
jne 0x476812
mov edi, dword [ebp - 0x24]
mov byte [ebp + 0x5e], bl
jmp 0x47684e
cmp byte [ebp + 0x6f], bl
mov byte [ebp + 0x5e], 1
jne 0x47682c
push ebx
push ecx
call fcn.004ae06a
test eax, eax
pop ecx
pop ecx
je 0x47682c
mov byte [ebp + 0x6f], 0x20
cmp dword [ebp + 0x3c], ebx
mov edi, dword [ebp - 0x24]
jne 0x476872
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.00405c00
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x47686d
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.00405c00
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x5e], bl
je 0x47689f
cmp byte [ebp + 0x23], bl
je 0x47689f
cmp dword [ebp - 0x1c], ebx
jg 0x47689f
cmp dword [ebp + 0x68], ebx
jne 0x4768c0
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.00405c00
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x4768c0
push ebx
push 0x2000000
push 3
push ebx
push 3
or edi, esi
push edi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c00
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x40], ebx
je 0x4768de
cmp dword [ebp + 0x58], ebx
je 0x4768de
push dword [ebp + 0x40]
push dword [ebp + 0x58]
push dword [ebp + 0x24]
call fcn.00410676
add esp, 0xc
mov dword [ebp + 0x58], ebx
cmp dword [ebp - 0x1c], ebx
je 0x476902
cmp dword [ebp + 0x68], ebx
je 0x476902
mov edi, 0x200
push edi
push dword [ebp + 0x68]
call fcn.00442116
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
jge 0x476902
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 0x477510
cmp dword [ebp + 0x38], ebx
jl 0x4766db
mov edi, dword [ebp + 0x34]
jg 0x47692f
cmp edi, ebx
jbe 0x4766db
cmp dword [ebp - 0x30], ebx
jl 0x4766db
jg 0x476943
cmp dword [ebp - 0x34], ebx
jbe 0x4766db
cmp dword [ebp + 0x50], ebx
jl 0x476972
jg 0x47694f
cmp dword [ebp + 0x4c], ebx
jb 0x476972
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.004ae880
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x4769a0
cmp dword [ebp + 0x44], 0xffffffff
jne 0x47698b
mov eax, 0x7fffffff
cmp dword [ebp + 0x48], eax
jne 0x47698b
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], eax
jmp 0x4769a0
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x38]
push edi
call fcn.004ae930
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edx
push dword [ebp - 0x10]
call fcn.004132c6
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.0044e827
cmp byte [ebp + 0x6d], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
jg 0x4769d2
cmp dword [ebp + 0x68], ebx
jne 0x4769d2
lea ecx, [ebp - 0x10]
call fcn.0043e825
jmp 0x477558
cmp byte [ebp + 0x22], bl
je 0x476b2d
cmp dword [ebp - 0x1c], ebx
jg 0x476b2d
cmp byte [ebp + 0x6d], bl
jg 0x476b2d
cmp dword [ebp + 0x3c], ebx
jne 0x4769fa
lea ecx, [ebp + 0x58]
call fcn.00402cc5
cmp byte [ebp + 0x6e], bl
je 0x476a0c
push ebx
push ebx
push dword [ebp]
call fcn.0044c4d7
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x476a45
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c00
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x476a4e
push ebx
push 0x2000000
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c00
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
je 0x4769c5
cmp byte [ebp + 0x21], bl
je 0x476b2d
cmp dword [ebp + 0x48], ebx
jl 0x4774ed
jg 0x476a6b
cmp dword [ebp + 0x44], ebx
jb 0x476b2d
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.004ae930
cmp dword [ebp + 0x50], ebx
jl 0x476a9a
jg 0x476a88
cmp dword [ebp + 0x4c], ebx
jb 0x476a9a
cmp edx, dword [ebp + 0x50]
jl 0x476a9a
jg 0x476a94
cmp eax, dword [ebp + 0x4c]
jbe 0x476a9a
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 0x476ac0
jg 0x476ab7
cmp dword [ebp + 0x44], 0xffffffff
jb 0x476ac0
mov dword [ebp - 0x3c], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x55], bl
jne 0x476ae3
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043fb25
add esp, 0x10
cmp edx, edi
jg 0x476ae3
jl 0x476adf
cmp eax, dword [ebp - 0x3c]
jae 0x476ae3
mov byte [ebp + 0x55], 1
push ebx
push edi
push dword [ebp - 0x3c]
push dword [ebp + 0x68]
call fcn.0043fb25
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x476b12
cmp edx, edi
jne 0x476b12
cmp dword [ebp + 0x48], esi
jg 0x476b2d
jl 0x477269
cmp dword [ebp + 0x44], 0xffffffff
jae 0x476b2d
jmp 0x477269
cmp dword [ebp + 0x48], esi
jg 0x476b2d
jl 0x476b1f
cmp dword [ebp + 0x44], 0xffffffff
jae 0x476b2d
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043fb25
add esp, 0x10
cmp dword [ebp + 0x48], ebx
jl 0x4774ed
jg 0x476b41
cmp dword [ebp + 0x44], ebx
jbe 0x4774ed
cmp dword [ebp + 0x50], ebx
jl 0x4774ed
jg 0x476b55
cmp dword [ebp + 0x4c], ebx
jbe 0x4774ed
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 0x476b72
cmp byte [ebp + 0x5f], bl
mov byte [ebp + 0x6e], 1
je 0x476b75
mov byte [ebp + 0x6e], bl
cmp dword [ebp - 0x1c], ebx
jle 0x476b8a
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 0x476bde
jg 0x476b9e
cmp esi, ebx
jbe 0x476bde
cmp byte [ebp + 0x6d], bl
jg 0x476bde
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.0043fb25
add esp, 0x10
cmp eax, esi
jne 0x476bb9
cmp edx, edi
je 0x476bde
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x10]
call fcn.0043e825
lea ecx, [ebp + 0x58]
call fcn.00402cc5
lea ecx, [ebp - 0x54]
call fcn.0043e825
jmp 0x4766f0
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 0x476cfe
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.00444f6c
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x10]
call fcn.00410e94
cmp eax, ebx
jne 0x476c58
lea ecx, [ebp + 0x3c]
call fcn.0043e825
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00402cc5
lea ecx, [ebp - 0x10]
call fcn.0043e825
jmp 0x4766db
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 0x476c92
jl 0x476c73
cmp eax, ebx
ja 0x476c92
mov dword [ebp + 0xc], 0x80070057
lea ecx, [ebp + 0x3c]
call fcn.0043e825
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x477261
cmp byte [ebp + 0x6d], bl
je 0x476ceb
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 0x476cb9
jg 0x476cb3
cmp esi, dword [ebp + 0x4c]
jbe 0x476cb9
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
cmp edx, ecx
jl 0x476cc7
jg 0x476cc3
cmp esi, eax
jbe 0x476cc7
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x476c7a
jg 0x476cd1
cmp esi, ebx
jbe 0x476c7a
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.0041457b
add esp, 0xc
jmp 0x476c7a
lea ecx, [ebp + 0x3c]
call fcn.0043e825
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x476dd3
cmp byte [ebp + 0x5f], bl
jg 0x476dd3
lea eax, [ebp - 0x10]
push eax
call fcn.0044c835
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.00405c00
cmp dword [ebp + 0x40], ebx
jne 0x476d69
push ebx
push 0x2000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
call fcn.00405c00
cmp dword [ebp + 0x40], ebx
jne 0x476d69
lea ecx, [ebp + 0x40]
call fcn.00402cc5
jmp 0x4769c5
cmp dword [ebp - 0xc], ebx
je 0x476d94
push 0x200
push dword [ebp + 0x40]
call fcn.00442116
cmp dword [ebp - 0xc], ebx
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
jle 0x476d94
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 0x476dd3
jg 0x476da8
cmp ecx, ebx
jbe 0x476dd3
push ebx
push eax
push ecx
push dword [ebp + 0x40]
call fcn.0043fb25
add esp, 0x10
cmp eax, edi
jne 0x476dbe
cmp edx, esi
je 0x476dd3
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x40]
mov ebx, eax
call fcn.00402cc5
jmp 0x476bc1
cmp dword [ebp - 0x1c], ebx
jle 0x476e07
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.004ae880
push edi
push esi
push edx
push eax
call fcn.004ae930
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x476e13
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 0x476e41
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.004ae880
push edi
push esi
push edx
push eax
call fcn.004ae930
jmp 0x476e47
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 0x476e57
cmp edx, dword [ebp + 0x48]
je 0x476e61
add eax, dword [ebp + 0x44]
mov ecx, edx
adc ecx, dword [ebp + 0x48]
jmp 0x476e63
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 0x476e88
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.00444e15
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.004ae820
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 0x476f31
jg 0x476ed8
cmp dword [ebp + 0x18], ebx
jbe 0x476f31
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 0x476f21
jl 0x476f15
cmp dword [ebp + 0x4c], ebx
jae 0x476f21
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.0041457b
add esp, 0xc
cmp dword [ebp - 0x24], ebx
jl 0x476fac
jg 0x476f3d
cmp dword [ebp - 0x28], ebx
jbe 0x476fac
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043fb25
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.0041457b
push dword [ebp - 0x28]
push esi
push dword [ebp + 0x3c]
call fcn.0041457b
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.0043fb25
add esp, 0x28
cmp byte [ebp + 0x21], bl
je 0x476fac
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x5e], 1
jg 0x47715e
jl 0x476fc4
cmp dword [ebp + 0x60], ebx
ja 0x47715e
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x477169
jg 0x476fda
cmp dword [ebp + 0x4c], ebx
jbe 0x477169
cmp byte [ebp + 0x5e], bl
je 0x477169
cmp byte [ebp + 0x6e], bl
je 0x4770f9
mov esi, dword [ebp - 0x44]
cmp esi, eax
jg 0x477002
jl 0x476ffd
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp + 0x4c]
ja 0x477002
mov ecx, dword [ebp - 0x48]
jmp 0x477007
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 0x477029
jg 0x47701d
cmp edx, dword [ebp + 4]
jbe 0x477029
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 0x47704f
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 0x477054
mov edi, ecx
mov dword [ebp - 0x30], esi
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x34], edi
je 0x4770af
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 0x47707a
jg 0x477074
cmp esi, dword [ebp - 0x34]
jbe 0x47707a
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x4770a1
jg 0x477086
cmp dword [ebp - 0x34], ebx
jbe 0x4770a1
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.0041457b
add esp, 0xc
add dword [ebp - 0x5c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
adc dword [ebp - 0x58], edi
jmp 0x4770d3
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 0x477169
jg 0x4770e5
cmp esi, ebx
jbe 0x477169
cmp edi, dword [ebp + 0x50]
jl 0x477143
jg 0x4770f1
cmp esi, dword [ebp + 0x4c]
jbe 0x477143
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x50]
jmp 0x47713d
cmp dword [ebp + 0x48], eax
jg 0x477110
jl 0x477108
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x4c]
ja 0x477110
mov esi, dword [ebp + 0x44]
mov edi, dword [ebp + 0x48]
jmp 0x477115
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 0x477143
jg 0x477131
cmp ecx, dword [ebp + 4]
jbe 0x477143
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 0x477152
cmp dword [ebp + 0x50], 0x7fffffff
je 0x477158
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 0x477464
cmp dword [ebp + 0x64], ebx
jl 0x4774b9
jg 0x47717d
cmp dword [ebp + 0x60], ebx
jbe 0x4774b9
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 0x4771a5
jl 0x47719a
mov edx, dword [ebp + 0x44]
cmp edx, dword [ebp + 0x60]
ja 0x4771a5
mov ecx, dword [ebp + 0x44]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
jmp 0x4771ae
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 0x4771cf
mov eax, dword [ebp - 0x20]
cdq
push edx
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004b0c20
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jmp 0x4771d5
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 0x477276
jg 0x4771f4
cmp edi, ebx
jbe 0x477276
cmp byte [ebp + 0x6d], bl
je 0x47721c
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push edi
push dword [ebp - 0x24]
add ecx, eax
push ecx
call fcn.0041457b
add esp, 0xc
add dword [ebp + 0x10], edi
mov dword [ebp + 0x24], edi
adc dword [ebp + 0x14], esi
jmp 0x477408
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.00443391
add esp, 0x14
test eax, eax
jne 0x477408
cmp byte [ebp + 0x56], bl
jne 0x477379
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x477256
xor eax, eax
inc eax
mov dword [ebp + 0xc], eax
lea ecx, [ebp + 0x2c]
call fcn.0043e825
lea ecx, [ebp + 0x40]
call fcn.00402cc5
lea ecx, [ebp - 0x10]
call fcn.0043e825
jmp 0x477a23
cmp dword [ebp + 0x1c], ebx
jl 0x477339
jg 0x47728a
cmp dword [ebp + 0x18], ebx
jbe 0x477339
push dword [ebp - 0x20]
push ebx
push dword [ebp + 0xc]
call fcn.004ae820
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.0043fb25
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.0041457b
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.0043fb25
mov edi, dword [ebp - 0x78]
add esp, 0x1c
cmp byte [ebp + 0x21], bl
je 0x477339
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x24], ebx
jl 0x477441
jg 0x477350
cmp dword [ebp + 0x34], ebx
jbe 0x477441
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 0x477441
cmp byte [ebp + 0x56], bl
je 0x4774b2
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.00402cc5
push ebx
push ebx
push 4
push ebx
push ebx
mov esi, 0xc0000000
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c00
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x4773e4
push ebx
push ebx
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c00
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x4773e4
push ebx
mov eax, 0x2000000
push eax
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c00
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.00443391
add esp, 0x14
test eax, eax
je 0x477243
cmp byte [ebp + 0x57], 2
je 0x477441
cmp dword [ebp + 0x24], edi
jbe 0x477410
mov dword [ebp + 0x24], edi
cmp byte [ebp + 0x6f], bl
je 0x477427
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004ae820
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 0x477276
cmp byte [ebp + 0x6f], bl
je 0x477458
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004ae820
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 0x477186
jl 0x47747e
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x60], eax
jae 0x477186
cmp dword [ebp + 0x64], ebx
jl 0x476fc4
jg 0x477492
cmp dword [ebp + 0x60], ebx
jbe 0x476fc4
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x24]
je 0x476fc4
push dword [ebp + 0x60]
push dword [ebp - 0x24]
push eax
call fcn.0041457b
add esp, 0xc
jmp 0x476fc4
mov dword [ebp - 0x60], 1
cmp dword [ebp - 0x60], ebx
jne 0x477249
cmp dword [ebp + 0x50], ebx
jl 0x4774e5
jg 0x4774ce
cmp dword [ebp + 0x4c], ebx
jbe 0x4774e5
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x477249
cmp dword [ebp + 0x50], 0x7fffffff
jne 0x477249
mov dword [ebp + 0xc], ebx
jmp 0x477259
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x477269
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0x68]
call fcn.0043fb25
add esp, 0x10
jmp 0x477269
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 0x477697
cmp dword [ebp - 0x1c], 0x11
jne 0x47756d
lea eax, [ebp - 0x48]
push eax
push ebx
push dword [ebp + 0x68]
call fcn.00455095
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jg 0x4775d7
jl 0x477558
cmp eax, ebx
jae 0x4775d7
lea ecx, [ebp + 0x58]
call fcn.00402cc5
lea ecx, [ebp - 0x54]
call fcn.0043e825
jmp 0x4762d2
cmp dword [ebp + 0x68], ebx
je 0x4775dd
cmp dword [ebp - 0x1c], ebx
jne 0x4775b2
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043fb25
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 0x4775dd
jl 0x4775a2
cmp edi, ecx
jae 0x4775dd
cmp dword [ebp + 0x3c], ebx
jne 0x4775dd
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4775dd
push dword [ebp - 0x1c]
push dword [ebp + 0x68]
call fcn.004432ea
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x4775dd
jl 0x4775cd
cmp edi, ebx
jae 0x4775dd
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x4775dd
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
cmp byte [ebp - 0x2c], bl
je 0x477608
cmp dword [ebp + 0x60], 0xfffffffc
jne 0x477608
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 0x477608
jl 0x477602
cmp ecx, ebx
jae 0x477608
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x68], ebx
jne 0x477675
cmp dword [ebp - 0x1c], ebx
jne 0x477668
cmp byte [ebp + 0x6e], bl
je 0x477628
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp]
call fcn.0044c4d7
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c00
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x47767f
push ebx
push 0x2000000
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405c00
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x47767f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x476bc9
cmp byte [ebp + 0x6f], bl
je 0x477687
cmp dword [ebp - 0x1c], ebx
jne 0x47768c
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp dword [ebp - 0x1c], ebx
je 0x477697
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 0x4776f7
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.0043fb25
add esp, 0x10
cmp edx, ebx
jg 0x4776f7
jl 0x4776e2
cmp eax, ebx
jae 0x4776f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.0043e825
jmp 0x476bc9
cmp byte [ebp - 0x29], bl
je 0x477754
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x44]
jl 0x477714
jg 0x47770e
cmp eax, dword [ebp + 0x18]
jbe 0x477714
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
cmp byte [ebp + 0x6d], bl
je 0x477733
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x40]
push dword [ebp - 0xc]
add ecx, eax
push ecx
call fcn.0041457b
add esp, 0xc
jmp 0x477a0d
cmp ecx, ebx
jl 0x477a0d
jg 0x477745
cmp eax, ebx
jbe 0x477a0d
push dword [ebp + 0x2c]
movzx edx, word [ebp + 0x30]
push edx
push ecx
push eax
push dword [ebp - 0xc]
jmp 0x4777c1
mov ecx, dword [ebp + 0x64]
cmp ecx, ebx
jl 0x477776
mov eax, dword [ebp + 0x60]
jg 0x477764
cmp eax, ebx
jb 0x477776
cmp ecx, dword [ebp + 0x48]
jg 0x477776
jl 0x477770
cmp eax, dword [ebp + 0x44]
jae 0x477776
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 0x4777d1
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x3c]
call fcn.00444ef4
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x48]
jl 0x4777a9
jg 0x4777a6
cmp eax, dword [ebp + 0x44]
jbe 0x4777a9
mov ecx, dword [ebp + 0x44]
cmp ecx, ebx
jle 0x477a0d
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.0045524c
add esp, 0x18
jmp 0x477a0d
mov esi, dword [ebp - 0x20]
lea eax, [esi + esi]
push eax
lea ecx, [ebp - 0x60]
call fcn.00444e15
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 0x477a05
jle 0x4779fc
cmp dword [ebp + 0x38], ebx
jg 0x47782b
jl 0x47781f
cmp dword [ebp + 0x34], ebx
ja 0x47782b
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x477a05
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
jle 0x477a05
cmp dword [ebp + 0x48], ebx
jl 0x4779a4
jg 0x47784b
cmp dword [ebp + 0x44], ebx
jbe 0x4779a4
cmp dword [ebp + 0x38], ebx
jg 0x47797e
jl 0x47785f
cmp dword [ebp + 0x34], ebx
ja 0x47797e
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x4779a4
lea eax, [ebp + 0x78]
push eax
call fcn.0043e7bd
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 0x4778df
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.00451c15
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x4778df
cmp si, 0x2a
je 0x477978
cmp si, 0x28
je 0x477907
cmp si, 0x30
jb 0x4778c6
cmp si, 0x39
jbe 0x4778e7
cmp byte [ebp + 0x6e], bl
je 0x4778da
or esi, 0x20
cmp si, 0x61
jb 0x4778da
cmp si, 0x7a
jbe 0x4778e7
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov si, word [eax]
cmp si, bx
jne 0x4778aa
cmp word [eax], 0x30
jne 0x47791e
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x47791e
add eax, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], eax
jmp 0x477923
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
call fcn.00451c15
pop ecx
pop ecx
jmp 0x477978
cmp byte [ebp + 0x6e], bl
je 0x47795c
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.00445c9c
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.00414a48
add esp, 0x10
test al, al
jne 0x477970
mov al, byte [ebp - 0x2a]
mov byte [ebp + 0x6e], al
jmp 0x477970
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00451e7f
cmp eax, 1
pop ecx
pop ecx
jl 0x4779a4
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x40]
je 0x4779a4
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 0x477837
mov esi, dword [ebp - 4]
cmp esi, ebx
jle 0x477a05
cmp byte [ebp + 0x6d], bl
je 0x4779ce
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push esi
add ecx, eax
push edi
push ecx
call fcn.0041457b
mov eax, esi
cdq
add esp, 0xc
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp 0x4779e7
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.0045524c
add esp, 0x18
cmp dword [ebp + 0x48], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0xc], 0x200
jg 0x477813
jl 0x477a05
cmp dword [ebp + 0x44], ebx
ja 0x477813
lea ecx, [ebp - 0x60]
call fcn.0043e825
cmp dword [ebp + 0x68], ebx
je 0x477a1b
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.0043e825
cmp byte [ebp + 0x55], bl
je 0x477a36
cmp dword [ebp + 0x68], ebx
je 0x477a36
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp byte [ebp - 5], bl
je 0x477a83
cmp dword [ebp + 0x68], ebx
je 0x477a83
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 0x477a83
push ebx
push 0x4dd214
push str.Kernel32.DLL
push str.SetFileValidData
call fcn.0043fcc1
mov eax, dword [0x4dd214]
add esp, 0x10
cmp eax, ebx
je 0x477a83
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x68]
call eax
lea ecx, [ebp + 0x58]
call fcn.00402cc5
lea ecx, [ebp - 0x54]
call fcn.0043e825
mov ebx, dword [ebp + 0xc]
jmp 0x4766f0