Function at 0x47590f
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.0044d090
push 1
push 2
push str.SeBackupPrivilege
call fcn.004134e4
push 0x10
push 2
push str.SeRestorePrivilege
call fcn.004134e4
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 0x4759ae
mov eax, ecx
call fcn.0040f8eb
test al, al
jne 0x4759b6
cmp cx, 0x2a
jne 0x475991
mov al, byte [edx]
mov byte [ebp + 0x6f], al
jmp 0x4759a9
cmp cx, 0x2e
jne 0x47599e
mov al, byte [edx]
mov byte [ebp + 0x57], al
jmp 0x4759a9
cmp cx, 0x23
jne 0x4759a9
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 0x475979
lea eax, [ebp + 0x78]
push eax
call fcn.0043e611
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x40], esi
call fcn.00444e32
cmp word [esi], 0x2d
jne 0x475a1e
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x475a03
mov eax, ecx
call fcn.0040f8eb
test al, al
jne 0x475a03
cmp cx, 0x2c
je 0x475a03
lea eax, [ebp - 0x40]
push eax
call fcn.00405b6e
mov esi, dword [ebp - 0x40]
cmp word [esi], 0x2d
pop ecx
je 0x4759d4
cmp esi, dword [ebp + 0x78]
je 0x475a1e
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.00456647
mov eax, dword [ebp - 0x70]
push 1
lea ecx, [ebp]
mov dword [ebp + 0x78], eax
call fcn.00444e50
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 0x475c4a
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4cb9ec
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475aa1
mov byte [ebp - 0x2a], 1
jmp 0x475c4a
push 4
lea eax, [ebp + 0x78]
push eax
push str._dir
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475ac4
mov dword [ebp - 0x24], 0x80000000
jmp 0x475c4a
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.00446e98
add esp, 0xc
test al, al
jne 0x475c5c
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4cb904
call fcn.00446e98
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x475b98
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp + 0xc], esi
call fcn.00405b6e
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp - 0xc], ebx
jne 0x475b4c
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.00405b4a
mov eax, dword [ebp - 4]
cmp word [eax], bx
pop ecx
je 0x475b39
mov word [eax], bx
mov ecx, dword [ebp + 0x24]
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x40]
call fcn.0044d48a
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0044113e
mov eax, dword [ebp - 0x6c]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x475b88
cmp eax, ebx
je 0x475b88
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov dword [ebp + 0x40], ebx
call fcn.0043ecdc
test eax, eax
pop ecx
pop ecx
je 0x475b88
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x475b88
mov dword [ebp + 0x3c], esi
lea ecx, [ebp - 0xc]
call fcn.0043e679
mov esi, dword [ebp - 0x40]
jmp 0x475c4a
push 3
push eax
push 0x4cb9e0
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475bb5
mov byte [ebp - 5], 1
jmp 0x475c4a
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4cb9dc
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475bd2
mov byte [ebp + 0x6d], 1
jmp 0x475c4a
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475bef
mov byte [ebp + 0x6e], 1
jmp 0x475c4a
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475c0c
mov byte [ebp + 0x22], 1
jmp 0x475c4a
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4cb9d0
call fcn.00446de5
add esp, 0xc
test al, al
jne 0x475ca1
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4c5b90
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475c40
mov byte [ebp + 0x5e], 1
jmp 0x475c4a
lea eax, [ebp + 0x78]
push eax
call fcn.00405b6e
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x475a81
jmp 0x475fda
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00405b6e
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.0044113e
add esp, 0xc
cmp dword [ebp - 0x48], edi
je 0x476582
cmp dword [ebp - 0x48], ebx
je 0x476582
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x476582
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x23], 1
mov byte [ebp + 0x6f], 1
jne 0x475fda
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x475fa7
mov eax, ecx
call fcn.0040f8eb
test al, al
jne 0x475fa7
cmp cx, 0x2c
je 0x475fa7
mov eax, dword [ebp + 0x78]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.00405b6e
push 4
push dword [ebp + 0x78]
push 0x4cb9c8
call fcn.0043fac4
add esp, 0x10
test al, al
je 0x475d3c
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.00451a75
test eax, eax
pop ecx
pop ecx
jle 0x475f97
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 0x475f97
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x475d79
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.00451a75
test eax, eax
pop ecx
pop ecx
jle 0x475f97
mov eax, dword [ebp + 0x28]
cdq
jmp 0x475d31
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x475dbf
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.00451a75
test eax, eax
pop ecx
pop ecx
jle 0x475f97
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x475f97
push 7
push dword [ebp + 0x78]
push str._count
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x475e07
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.00451a75
test eax, eax
pop ecx
pop ecx
jle 0x475f97
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x48], eax
jmp 0x475f97
push 5
push dword [ebp + 0x78]
push str._len
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x475e4f
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.00451a75
test eax, eax
pop ecx
pop ecx
jle 0x475f97
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x50], eax
jmp 0x475f97
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x475e8c
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x475f97
mov byte [ebp - 0x2b], 1
jmp 0x475f97
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x475eda
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.00451a75
test eax, eax
pop ecx
pop ecx
jle 0x475f97
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x58], eax
jmp 0x475f97
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x475f25
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.00451a75
test eax, eax
pop ecx
pop ecx
jle 0x475f97
mov eax, dword [ebp + 0x28]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 8], eax
jmp 0x475f97
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475f42
mov byte [ebp + 0x6e], 1
jmp 0x475f97
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475f5f
mov byte [ebp + 0x22], 1
jmp 0x475f97
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475f7c
mov byte [ebp + 0x22], 0x10
jmp 0x475f97
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4cb9e0
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475f97
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x475cb6
cmp dword [ebp + 8], ebx
jg 0x475fda
jl 0x475fb3
cmp dword [ebp + 4], ebx
jae 0x475fda
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004adbb0
cmp edx, ebx
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
jg 0x475fda
jl 0x475fd4
cmp eax, ebx
jae 0x475fda
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00446de5
add esp, 0xc
test al, al
je 0x475ff5
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.00439738
cmp word [eax], 0x2c
jne 0x47657d
mov eax, dword [ebp]
mov ax, word [eax]
cmp ax, bx
je 0x47657d
cmp ax, 0x26
jne 0x47602e
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x476036
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.00456647
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00451a75
cmp dword [ebp + 0x14], ebx
pop ecx
pop ecx
jg 0x476071
jl 0x47657d
cmp dword [ebp + 0x10], ebx
jb 0x47657d
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 0x4760af
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043e611
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.00451a75
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.0043ec0f
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x4760cb
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x4760f1
jg 0x4760d9
cmp dword [ebp + 0x4c], ebx
jb 0x4760f1
cmp dword [ebp + 0x64], eax
jl 0x4760f1
jg 0x4760e8
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x4c]
jbe 0x4760f1
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043e611
push dword [ebp + 0x78]
call fcn.00410f03
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.0043fb03
add esp, 0x10
cmp al, bl
mov byte [ebp + 0x21], al
jne 0x476157
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 4]
push eax
call fcn.004481c5
test eax, eax
pop ecx
pop ecx
je 0x476157
mov eax, dword [ebp - 4]
mov ax, word [eax]
cmp ax, bx
je 0x476147
cmp ax, 0x2c
jne 0x476157
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 0x47616c
xor ebx, ebx
inc ebx
jmp 0x476582
lea eax, [ebp - 4]
push 1
push eax
mov dword [ebp - 4], esi
call fcn.0044cfbc
pop ecx
pop ecx
lea ecx, [ebp - 0x54]
mov esi, eax
call fcn.00444cbe
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 0x4762ef
mov esi, 0x4dcd58
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0xc]
call fcn.00444e32
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.00410d4d
cmp eax, ebx
mov dword [ebp + 0x2c], eax
jne 0x4761da
lea ecx, [ebp + 0xc]
call fcn.0043e679
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x476575
mov edx, dword [ebp + 0x64]
cmp edx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3c], eax
jl 0x476205
mov esi, dword [ebp + 0x60]
jg 0x4761f0
cmp esi, ebx
jbe 0x476205
mov ecx, esi
add ecx, dword [ebp + 4]
mov eax, edx
adc eax, dword [ebp + 8]
cmp eax, ebx
jl 0x47622a
jg 0x476205
cmp ecx, dword [ebp - 0x3c]
jbe 0x47622a
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 0x47622a
jl 0x476220
cmp esi, ebx
ja 0x47622a
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 0x47624c
jg 0x476238
cmp dword [ebp + 0x4c], ebx
jb 0x47624c
cmp eax, edx
jg 0x47624c
jl 0x476243
cmp dword [ebp + 0x4c], esi
jae 0x47624c
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.00444d00
mov edi, dword [ebp - 0x54]
cmp edi, ebx
jne 0x47627a
lea ecx, [ebp + 0xc]
call fcn.0043e679
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4773f2
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 0x4762a7
jg 0x47629e
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x3c]
jbe 0x4762a7
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 0x4762cf
jg 0x4762c0
cmp eax, ebx
jbe 0x4762cf
cmp edi, ecx
je 0x4762cf
push esi
push ecx
push edi
call fcn.004143bf
add esp, 0xc
lea ecx, [ebp + 0xc]
mov byte [ebp + 0x5f], 1
mov byte [ebp - 0x29], 1
call fcn.0043e679
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4764ca
cmp esi, ebx
je 0x4764ca
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 0x47632a
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.00454fc9
mov cx, word [esi]
mov dword [ebp - 0x60], eax
mov eax, dword [0x4dbfb0]
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 0x476370
cmp word [ecx + 2], bx
jne 0x476370
mov eax, dword [0x4dbc90]
jmp 0x476382
cmp dx, bx
je 0x476382
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 0x4763a9
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push dword [ebp - 0x60]
push dword [ebp + 0x30]
push eax
call fcn.004153c9
add esp, 0x14
mov edi, eax
cmp dword [ebp + 0xc], ebx
je 0x4763b7
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp edi, ebx
je 0x4773f2
cmp dword [ebp + 0x64], ebx
mov eax, dword [ebp - 0x50]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
jl 0x4763f1
jg 0x4763d5
cmp dword [ebp + 0x60], ebx
jbe 0x4763f1
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 0x476417
jg 0x4763f1
cmp ecx, dword [ebp - 0x18]
jbe 0x476417
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 0x476417
jl 0x47640d
cmp edi, ebx
ja 0x476417
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.00444d00
mov eax, dword [ebp - 0x54]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x4773f2
mov ecx, dword [ebp - 0x18]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.004adaa0
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp dword [ebp + 8], eax
jl 0x476468
jg 0x47645c
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x476468
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 0x476490
jg 0x47647c
cmp dword [ebp + 0x4c], ebx
jb 0x476490
cmp eax, esi
jg 0x476490
jl 0x476487
cmp dword [ebp + 0x4c], edi
jae 0x476490
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 0x4764ca
jg 0x4764b8
cmp eax, ebx
jbe 0x4764ca
cmp edi, dword [ebp + 0x30]
je 0x4764ca
push eax
push dword [ebp + 0x30]
push edi
call fcn.004143bf
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 0x4764ef
push 0x40
push 2
push str.SeManageVolumePrivilege
call fcn.004134e4
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 0x476511
mov byte [ebp + 0x56], bl
cmp byte [ebp + 0x23], bl
je 0x476526
cmp byte [ebp - 0x2b], bl
sete byte [ebp + 0x55]
cmp byte [ebp + 0x5f], bl
jne 0x476526
mov byte [ebp + 0x23], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x476631
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00444e32
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp]
call fcn.00410d4d
cmp eax, ebx
jne 0x4765ae
lea ecx, [ebp + 0x40]
call fcn.0043e679
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x58]
call fcn.00402cb0
lea ecx, [ebp - 0x54]
call fcn.0043e679
mov ebx, 0x80070057
lea ecx, [ebp]
call fcn.0043e679
lea ecx, [ebp - 0x70]
call fcn.0043e679
lea ecx, [ebp - 0x7c]
call fcn.00402cb0
lea ecx, [ebp - 0x80]
call fcn.0043e679
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 0x4765c9
jl 0x47655a
cmp ecx, ebx
jbe 0x47655a
cmp byte [ebp + 0x5f], bl
je 0x476619
mov esi, dword [ebp + 0x10]
sub ecx, esi
sbb eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x64]
jl 0x4765e8
jg 0x4765e2
cmp ecx, dword [ebp + 0x60]
jbe 0x4765e8
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x476601
jg 0x4765f2
cmp ecx, ebx
jbe 0x476601
push dword [ebp + 0x18]
add esi, edx
push edi
push esi
call fcn.004143bf
add esp, 0xc
lea ecx, [ebp + 0x40]
call fcn.0043e679
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4778b5
lea ecx, [ebp + 0x40]
call fcn.0043e679
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x476794
cmp byte [ebp + 0x5e], bl
je 0x47663b
mov dword [ebp - 0x1c], ebx
jmp 0x476658
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp]
push eax
call fcn.0044c567
movsx eax, al
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jl 0x47656d
cmp byte [ebp + 0x6f], bl
mov ecx, dword [ebp]
jne 0x4766a4
cmp dword [ebp - 0x1c], ebx
jne 0x47669c
cmp word [ecx], 0x5c
jne 0x47669c
cmp word [ecx + 2], 0x5c
jne 0x47669c
mov ax, word [ecx + 4]
cmp ax, 0x3f
je 0x476682
cmp ax, 0x2e
jne 0x47669c
cmp word [ecx + 6], 0x5c
jne 0x47669c
cmp ax, 0x3f
jne 0x4766a4
cmp word [ecx + 8], ax
jne 0x4766a4
cmp word [ecx + 0xa], 0x3a
jne 0x4766a4
mov edi, dword [ebp - 0x24]
mov byte [ebp + 0x5e], bl
jmp 0x4766e0
cmp byte [ebp + 0x6f], bl
mov byte [ebp + 0x5e], 1
jne 0x4766be
push ebx
push ecx
call fcn.004ad2e8
test eax, eax
pop ecx
pop ecx
je 0x4766be
mov byte [ebp + 0x6f], 0x20
cmp dword [ebp + 0x3c], ebx
mov edi, dword [ebp - 0x24]
jne 0x476704
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.00405bea
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x4766ff
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.00405bea
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x5e], bl
je 0x476731
cmp byte [ebp + 0x23], bl
je 0x476731
cmp dword [ebp - 0x1c], ebx
jg 0x476731
cmp dword [ebp + 0x68], ebx
jne 0x476752
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.00405bea
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x476752
push ebx
push 0x2000000
push 3
push ebx
push 3
or edi, esi
push edi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405bea
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x40], ebx
je 0x476770
cmp dword [ebp + 0x58], ebx
je 0x476770
push dword [ebp + 0x40]
push dword [ebp + 0x58]
push dword [ebp + 0x24]
call fcn.0044e73f
add esp, 0xc
mov dword [ebp + 0x58], ebx
cmp dword [ebp - 0x1c], ebx
je 0x476794
cmp dword [ebp + 0x68], ebx
je 0x476794
mov edi, 0x200
push edi
push dword [ebp + 0x68]
call fcn.00441fa2
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
jge 0x476794
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 0x4773a2
cmp dword [ebp + 0x38], ebx
jl 0x47656d
mov edi, dword [ebp + 0x34]
jg 0x4767c1
cmp edi, ebx
jbe 0x47656d
cmp dword [ebp - 0x30], ebx
jl 0x47656d
jg 0x4767d5
cmp dword [ebp - 0x34], ebx
jbe 0x47656d
cmp dword [ebp + 0x50], ebx
jl 0x476804
jg 0x4767e1
cmp dword [ebp + 0x4c], ebx
jb 0x476804
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.004adb00
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x476832
cmp dword [ebp + 0x44], 0xffffffff
jne 0x47681d
mov eax, 0x7fffffff
cmp dword [ebp + 0x48], eax
jne 0x47681d
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], eax
jmp 0x476832
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x38]
push edi
call fcn.004adbb0
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edx
push dword [ebp - 0x10]
call fcn.0041310a
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.0044e66d
cmp byte [ebp + 0x6d], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
jg 0x476864
cmp dword [ebp + 0x68], ebx
jne 0x476864
lea ecx, [ebp - 0x10]
call fcn.0043e679
jmp 0x4773ea
cmp byte [ebp + 0x22], bl
je 0x4769bf
cmp dword [ebp - 0x1c], ebx
jg 0x4769bf
cmp byte [ebp + 0x6d], bl
jg 0x4769bf
cmp dword [ebp + 0x3c], ebx
jne 0x47688c
lea ecx, [ebp + 0x58]
call fcn.00402cb0
cmp byte [ebp + 0x6e], bl
je 0x47689e
push ebx
push ebx
push dword [ebp]
call fcn.0044c307
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x4768d7
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405bea
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x4768e0
push ebx
push 0x2000000
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405bea
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
je 0x476857
cmp byte [ebp + 0x21], bl
je 0x4769bf
cmp dword [ebp + 0x48], ebx
jl 0x47737f
jg 0x4768fd
cmp dword [ebp + 0x44], ebx
jb 0x4769bf
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.004adbb0
cmp dword [ebp + 0x50], ebx
jl 0x47692c
jg 0x47691a
cmp dword [ebp + 0x4c], ebx
jb 0x47692c
cmp edx, dword [ebp + 0x50]
jl 0x47692c
jg 0x476926
cmp eax, dword [ebp + 0x4c]
jbe 0x47692c
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 0x476952
jg 0x476949
cmp dword [ebp + 0x44], 0xffffffff
jb 0x476952
mov dword [ebp - 0x3c], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x55], bl
jne 0x476975
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f9d0
add esp, 0x10
cmp edx, edi
jg 0x476975
jl 0x476971
cmp eax, dword [ebp - 0x3c]
jae 0x476975
mov byte [ebp + 0x55], 1
push ebx
push edi
push dword [ebp - 0x3c]
push dword [ebp + 0x68]
call fcn.0043f9d0
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x4769a4
cmp edx, edi
jne 0x4769a4
cmp dword [ebp + 0x48], esi
jg 0x4769bf
jl 0x4770fb
cmp dword [ebp + 0x44], 0xffffffff
jae 0x4769bf
jmp 0x4770fb
cmp dword [ebp + 0x48], esi
jg 0x4769bf
jl 0x4769b1
cmp dword [ebp + 0x44], 0xffffffff
jae 0x4769bf
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f9d0
add esp, 0x10
cmp dword [ebp + 0x48], ebx
jl 0x47737f
jg 0x4769d3
cmp dword [ebp + 0x44], ebx
jbe 0x47737f
cmp dword [ebp + 0x50], ebx
jl 0x47737f
jg 0x4769e7
cmp dword [ebp + 0x4c], ebx
jbe 0x47737f
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 0x476a04
cmp byte [ebp + 0x5f], bl
mov byte [ebp + 0x6e], 1
je 0x476a07
mov byte [ebp + 0x6e], bl
cmp dword [ebp - 0x1c], ebx
jle 0x476a1c
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 0x476a70
jg 0x476a30
cmp esi, ebx
jbe 0x476a70
cmp byte [ebp + 0x6d], bl
jg 0x476a70
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.0043f9d0
add esp, 0x10
cmp eax, esi
jne 0x476a4b
cmp edx, edi
je 0x476a70
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x10]
call fcn.0043e679
lea ecx, [ebp + 0x58]
call fcn.00402cb0
lea ecx, [ebp - 0x54]
call fcn.0043e679
jmp 0x476582
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 0x476b90
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.00444e32
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x10]
call fcn.00410d4d
cmp eax, ebx
jne 0x476aea
lea ecx, [ebp + 0x3c]
call fcn.0043e679
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00402cb0
lea ecx, [ebp - 0x10]
call fcn.0043e679
jmp 0x47656d
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 0x476b24
jl 0x476b05
cmp eax, ebx
ja 0x476b24
mov dword [ebp + 0xc], 0x80070057
lea ecx, [ebp + 0x3c]
call fcn.0043e679
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4770f3
cmp byte [ebp + 0x6d], bl
je 0x476b7d
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 0x476b4b
jg 0x476b45
cmp esi, dword [ebp + 0x4c]
jbe 0x476b4b
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
cmp edx, ecx
jl 0x476b59
jg 0x476b55
cmp esi, eax
jbe 0x476b59
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x476b0c
jg 0x476b63
cmp esi, ebx
jbe 0x476b0c
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.004143bf
add esp, 0xc
jmp 0x476b0c
lea ecx, [ebp + 0x3c]
call fcn.0043e679
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x476c65
cmp byte [ebp + 0x5f], bl
jg 0x476c65
lea eax, [ebp - 0x10]
push eax
call fcn.0044c665
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.00405bea
cmp dword [ebp + 0x40], ebx
jne 0x476bfb
push ebx
push 0x2000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
call fcn.00405bea
cmp dword [ebp + 0x40], ebx
jne 0x476bfb
lea ecx, [ebp + 0x40]
call fcn.00402cb0
jmp 0x476857
cmp dword [ebp - 0xc], ebx
je 0x476c26
push 0x200
push dword [ebp + 0x40]
call fcn.00441fa2
cmp dword [ebp - 0xc], ebx
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
jle 0x476c26
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 0x476c65
jg 0x476c3a
cmp ecx, ebx
jbe 0x476c65
push ebx
push eax
push ecx
push dword [ebp + 0x40]
call fcn.0043f9d0
add esp, 0x10
cmp eax, edi
jne 0x476c50
cmp edx, esi
je 0x476c65
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x40]
mov ebx, eax
call fcn.00402cb0
jmp 0x476a53
cmp dword [ebp - 0x1c], ebx
jle 0x476c99
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.004adb00
push edi
push esi
push edx
push eax
call fcn.004adbb0
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x476ca5
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 0x476cd3
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.004adb00
push edi
push esi
push edx
push eax
call fcn.004adbb0
jmp 0x476cd9
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 0x476ce9
cmp edx, dword [ebp + 0x48]
je 0x476cf3
add eax, dword [ebp + 0x44]
mov ecx, edx
adc ecx, dword [ebp + 0x48]
jmp 0x476cf5
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 0x476d1a
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.00444cdb
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.004adaa0
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 0x476dc3
jg 0x476d6a
cmp dword [ebp + 0x18], ebx
jbe 0x476dc3
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 0x476db3
jl 0x476da7
cmp dword [ebp + 0x4c], ebx
jae 0x476db3
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.004143bf
add esp, 0xc
cmp dword [ebp - 0x24], ebx
jl 0x476e3e
jg 0x476dcf
cmp dword [ebp - 0x28], ebx
jbe 0x476e3e
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f9d0
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.004143bf
push dword [ebp - 0x28]
push esi
push dword [ebp + 0x3c]
call fcn.004143bf
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.0043f9d0
add esp, 0x28
cmp byte [ebp + 0x21], bl
je 0x476e3e
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x5e], 1
jg 0x476ff0
jl 0x476e56
cmp dword [ebp + 0x60], ebx
ja 0x476ff0
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x476ffb
jg 0x476e6c
cmp dword [ebp + 0x4c], ebx
jbe 0x476ffb
cmp byte [ebp + 0x5e], bl
je 0x476ffb
cmp byte [ebp + 0x6e], bl
je 0x476f8b
mov esi, dword [ebp - 0x44]
cmp esi, eax
jg 0x476e94
jl 0x476e8f
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp + 0x4c]
ja 0x476e94
mov ecx, dword [ebp - 0x48]
jmp 0x476e99
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 0x476ebb
jg 0x476eaf
cmp edx, dword [ebp + 4]
jbe 0x476ebb
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 0x476ee1
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 0x476ee6
mov edi, ecx
mov dword [ebp - 0x30], esi
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x34], edi
je 0x476f41
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 0x476f0c
jg 0x476f06
cmp esi, dword [ebp - 0x34]
jbe 0x476f0c
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x476f33
jg 0x476f18
cmp dword [ebp - 0x34], ebx
jbe 0x476f33
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.004143bf
add esp, 0xc
add dword [ebp - 0x5c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
adc dword [ebp - 0x58], edi
jmp 0x476f65
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 0x476ffb
jg 0x476f77
cmp esi, ebx
jbe 0x476ffb
cmp edi, dword [ebp + 0x50]
jl 0x476fd5
jg 0x476f83
cmp esi, dword [ebp + 0x4c]
jbe 0x476fd5
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x50]
jmp 0x476fcf
cmp dword [ebp + 0x48], eax
jg 0x476fa2
jl 0x476f9a
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x4c]
ja 0x476fa2
mov esi, dword [ebp + 0x44]
mov edi, dword [ebp + 0x48]
jmp 0x476fa7
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 0x476fd5
jg 0x476fc3
cmp ecx, dword [ebp + 4]
jbe 0x476fd5
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 0x476fe4
cmp dword [ebp + 0x50], 0x7fffffff
je 0x476fea
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 0x4772f6
cmp dword [ebp + 0x64], ebx
jl 0x47734b
jg 0x47700f
cmp dword [ebp + 0x60], ebx
jbe 0x47734b
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 0x477037
jl 0x47702c
mov edx, dword [ebp + 0x44]
cmp edx, dword [ebp + 0x60]
ja 0x477037
mov ecx, dword [ebp + 0x44]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
jmp 0x477040
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 0x477061
mov eax, dword [ebp - 0x20]
cdq
push edx
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004afea0
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jmp 0x477067
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 0x477108
jg 0x477086
cmp edi, ebx
jbe 0x477108
cmp byte [ebp + 0x6d], bl
je 0x4770ae
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push edi
push dword [ebp - 0x24]
add ecx, eax
push ecx
call fcn.004143bf
add esp, 0xc
add dword [ebp + 0x10], edi
mov dword [ebp + 0x24], edi
adc dword [ebp + 0x14], esi
jmp 0x47729a
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.0044321d
add esp, 0x14
test eax, eax
jne 0x47729a
cmp byte [ebp + 0x56], bl
jne 0x47720b
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x4770e8
xor eax, eax
inc eax
mov dword [ebp + 0xc], eax
lea ecx, [ebp + 0x2c]
call fcn.0043e679
lea ecx, [ebp + 0x40]
call fcn.00402cb0
lea ecx, [ebp - 0x10]
call fcn.0043e679
jmp 0x4778b5
cmp dword [ebp + 0x1c], ebx
jl 0x4771cb
jg 0x47711c
cmp dword [ebp + 0x18], ebx
jbe 0x4771cb
push dword [ebp - 0x20]
push ebx
push dword [ebp + 0xc]
call fcn.004adaa0
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.0043f9d0
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.004143bf
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.0043f9d0
mov edi, dword [ebp - 0x78]
add esp, 0x1c
cmp byte [ebp + 0x21], bl
je 0x4771cb
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x24], ebx
jl 0x4772d3
jg 0x4771e2
cmp dword [ebp + 0x34], ebx
jbe 0x4772d3
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 0x4772d3
cmp byte [ebp + 0x56], bl
je 0x477344
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.00402cb0
push ebx
push ebx
push 4
push ebx
push ebx
mov esi, 0xc0000000
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405bea
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x477276
push ebx
push ebx
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405bea
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x477276
push ebx
mov eax, 0x2000000
push eax
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405bea
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.0044321d
add esp, 0x14
test eax, eax
je 0x4770d5
cmp byte [ebp + 0x57], 2
je 0x4772d3
cmp dword [ebp + 0x24], edi
jbe 0x4772a2
mov dword [ebp + 0x24], edi
cmp byte [ebp + 0x6f], bl
je 0x4772b9
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004adaa0
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 0x477108
cmp byte [ebp + 0x6f], bl
je 0x4772ea
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004adaa0
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 0x477018
jl 0x477310
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x60], eax
jae 0x477018
cmp dword [ebp + 0x64], ebx
jl 0x476e56
jg 0x477324
cmp dword [ebp + 0x60], ebx
jbe 0x476e56
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x24]
je 0x476e56
push dword [ebp + 0x60]
push dword [ebp - 0x24]
push eax
call fcn.004143bf
add esp, 0xc
jmp 0x476e56
mov dword [ebp - 0x60], 1
cmp dword [ebp - 0x60], ebx
jne 0x4770db
cmp dword [ebp + 0x50], ebx
jl 0x477377
jg 0x477360
cmp dword [ebp + 0x4c], ebx
jbe 0x477377
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x4770db
cmp dword [ebp + 0x50], 0x7fffffff
jne 0x4770db
mov dword [ebp + 0xc], ebx
jmp 0x4770eb
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x4770fb
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0x68]
call fcn.0043f9d0
add esp, 0x10
jmp 0x4770fb
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 0x477529
cmp dword [ebp - 0x1c], 0x11
jne 0x4773ff
lea eax, [ebp - 0x48]
push eax
push ebx
push dword [ebp + 0x68]
call fcn.00454ef5
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jg 0x477469
jl 0x4773ea
cmp eax, ebx
jae 0x477469
lea ecx, [ebp + 0x58]
call fcn.00402cb0
lea ecx, [ebp - 0x54]
call fcn.0043e679
jmp 0x476164
cmp dword [ebp + 0x68], ebx
je 0x47746f
cmp dword [ebp - 0x1c], ebx
jne 0x477444
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f9d0
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 0x47746f
jl 0x477434
cmp edi, ecx
jae 0x47746f
cmp dword [ebp + 0x3c], ebx
jne 0x47746f
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x47746f
push dword [ebp - 0x1c]
push dword [ebp + 0x68]
call fcn.00443176
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x47746f
jl 0x47745f
cmp edi, ebx
jae 0x47746f
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x47746f
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
cmp byte [ebp - 0x2c], bl
je 0x47749a
cmp dword [ebp + 0x60], 0xfffffffc
jne 0x47749a
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 0x47749a
jl 0x477494
cmp ecx, ebx
jae 0x47749a
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x68], ebx
jne 0x477507
cmp dword [ebp - 0x1c], ebx
jne 0x4774fa
cmp byte [ebp + 0x6e], bl
je 0x4774ba
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp]
call fcn.0044c307
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405bea
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x477511
push ebx
push 0x2000000
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405bea
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x477511
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x476a5b
cmp byte [ebp + 0x6f], bl
je 0x477519
cmp dword [ebp - 0x1c], ebx
jne 0x47751e
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp dword [ebp - 0x1c], ebx
je 0x477529
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 0x477589
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.0043f9d0
add esp, 0x10
cmp edx, ebx
jg 0x477589
jl 0x477574
cmp eax, ebx
jae 0x477589
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.0043e679
jmp 0x476a5b
cmp byte [ebp - 0x29], bl
je 0x4775e6
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x44]
jl 0x4775a6
jg 0x4775a0
cmp eax, dword [ebp + 0x18]
jbe 0x4775a6
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
cmp byte [ebp + 0x6d], bl
je 0x4775c5
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x40]
push dword [ebp - 0xc]
add ecx, eax
push ecx
call fcn.004143bf
add esp, 0xc
jmp 0x47789f
cmp ecx, ebx
jl 0x47789f
jg 0x4775d7
cmp eax, ebx
jbe 0x47789f
push dword [ebp + 0x2c]
movzx edx, word [ebp + 0x30]
push edx
push ecx
push eax
push dword [ebp - 0xc]
jmp 0x477653
mov ecx, dword [ebp + 0x64]
cmp ecx, ebx
jl 0x477608
mov eax, dword [ebp + 0x60]
jg 0x4775f6
cmp eax, ebx
jb 0x477608
cmp ecx, dword [ebp + 0x48]
jg 0x477608
jl 0x477602
cmp eax, dword [ebp + 0x44]
jae 0x477608
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 0x477663
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x3c]
call fcn.00444dba
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x48]
jl 0x47763b
jg 0x477638
cmp eax, dword [ebp + 0x44]
jbe 0x47763b
mov ecx, dword [ebp + 0x44]
cmp ecx, ebx
jle 0x47789f
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.004550ac
add esp, 0x18
jmp 0x47789f
mov esi, dword [ebp - 0x20]
lea eax, [esi + esi]
push eax
lea ecx, [ebp - 0x60]
call fcn.00444cdb
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 0x477897
jle 0x47788e
cmp dword [ebp + 0x38], ebx
jg 0x4776bd
jl 0x4776b1
cmp dword [ebp + 0x34], ebx
ja 0x4776bd
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x477897
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
jle 0x477897
cmp dword [ebp + 0x48], ebx
jl 0x477836
jg 0x4776dd
cmp dword [ebp + 0x44], ebx
jbe 0x477836
cmp dword [ebp + 0x38], ebx
jg 0x477810
jl 0x4776f1
cmp dword [ebp + 0x34], ebx
ja 0x477810
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x477836
lea eax, [ebp + 0x78]
push eax
call fcn.0043e611
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 0x477771
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.00451a75
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x477771
cmp si, 0x2a
je 0x47780a
cmp si, 0x28
je 0x477799
cmp si, 0x30
jb 0x477758
cmp si, 0x39
jbe 0x477779
cmp byte [ebp + 0x6e], bl
je 0x47776c
or esi, 0x20
cmp si, 0x61
jb 0x47776c
cmp si, 0x7a
jbe 0x477779
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov si, word [eax]
cmp si, bx
jne 0x47773c
cmp word [eax], 0x30
jne 0x4777b0
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x4777b0
add eax, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], eax
jmp 0x4777b5
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
call fcn.00451a75
pop ecx
pop ecx
jmp 0x47780a
cmp byte [ebp + 0x6e], bl
je 0x4777ee
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.00445ad5
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.004ab8fe
add esp, 0x10
test al, al
jne 0x477802
mov al, byte [ebp - 0x2a]
mov byte [ebp + 0x6e], al
jmp 0x477802
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00451cdf
cmp eax, 1
pop ecx
pop ecx
jl 0x477836
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x40]
je 0x477836
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 0x4776c9
mov esi, dword [ebp - 4]
cmp esi, ebx
jle 0x477897
cmp byte [ebp + 0x6d], bl
je 0x477860
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push esi
add ecx, eax
push edi
push ecx
call fcn.004143bf
mov eax, esi
cdq
add esp, 0xc
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp 0x477879
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.004550ac
add esp, 0x18
cmp dword [ebp + 0x48], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0xc], 0x200
jg 0x4776a5
jl 0x477897
cmp dword [ebp + 0x44], ebx
ja 0x4776a5
lea ecx, [ebp - 0x60]
call fcn.0043e679
cmp dword [ebp + 0x68], ebx
je 0x4778ad
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.0043e679
cmp byte [ebp + 0x55], bl
je 0x4778c8
cmp dword [ebp + 0x68], ebx
je 0x4778c8
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp byte [ebp - 5], bl
je 0x477915
cmp dword [ebp + 0x68], ebx
je 0x477915
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 0x477915
push ebx
push 0x4dc21c
push str.Kernel32.DLL
push str.SetFileValidData
call fcn.0043fb6c
mov eax, dword [0x4dc21c]
add esp, 0x10
cmp eax, ebx
je 0x477915
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x68]
call eax
lea ecx, [ebp + 0x58]
call fcn.00402cb0
lea ecx, [ebp - 0x54]
call fcn.0043e679
mov ebx, dword [ebp + 0xc]
jmp 0x476582