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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x50c
push ebx
push esi
push edi
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0x80]
xor ebx, ebx
push eax
mov dword [ebp + 0x4c], ecx
mov dword [ebp - 0x80], ebx
call fcn.00443e77
mov edx, dword [ebp + 0x78]
pop ecx
pop ecx
mov byte [ebp + 0x6e], bl
mov byte [ebp + 0x53], bl
mov byte [ebp + 0x52], bl
mov byte [ebp - 9], bl
mov byte [ebp + 0x6d], bl
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x7c], ebx
xor ecx, ecx
jmp 0x466169
mov eax, ecx
call fcn.00482120
test al, al
jne 0x466171
cmp cx, 0x2a
jne 0x46614c
mov al, byte [edx]
mov byte [ebp + 0x6e], al
jmp 0x466164
cmp cx, 0x2e
jne 0x466159
mov al, byte [edx]
mov byte [ebp + 0x53], al
jmp 0x466164
cmp cx, 0x23
jne 0x466164
mov al, byte [edx]
mov byte [ebp + 0x52], al
inc edx
inc edx
mov dword [ebp + 0x78], edx
mov cx, word [edx]
cmp cx, bx
jne 0x466134
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x3c], esi
call fcn.0043d47d
cmp word [esi], 0x2d
jne 0x4661d9
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x4661be
mov eax, ecx
call fcn.00482120
test al, al
jne 0x4661be
cmp cx, 0x2c
je 0x4661be
lea eax, [ebp - 0x3c]
push eax
call fcn.0040507c
mov esi, dword [ebp - 0x3c]
cmp word [esi], 0x2d
pop ecx
je 0x46618f
cmp esi, dword [ebp + 0x78]
je 0x4661d9
mov ecx, dword [ebp + 0x4c]
push 1
push ebx
lea eax, [ebp - 0x64]
push eax
mov word [esi - 2], bx
push dword [ebp + 0x78]
call fcn.0044c0fc
mov eax, dword [ebp - 0x64]
push 1
lea ecx, [ebp - 0x24]
mov dword [ebp + 0x78], eax
call fcn.0043d49b
or edi, 0xffffffff
mov eax, 0x200
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], 0x7fffffff
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
mov dword [ebp - 0x10], ebx
mov byte [ebp - 0x11], bl
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ebx
mov dword [ebp], eax
mov dword [ebp + 4], ebx
mov byte [ebp + 0x2e], bl
mov byte [ebp + 0x2f], bl
mov byte [ebp + 0x6f], bl
mov dword [ebp + 0x28], ebx
jmp 0x466386
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4add08
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x46625c
mov byte [ebp - 9], 1
jmp 0x466386
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.0043f236
add esp, 0xc
test al, al
jne 0x466398
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4adc90
call fcn.0043f236
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x46632d
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp + 0x24], esi
call fcn.0040507c
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp + 0x30], ebx
jne 0x4662e4
inc esi
inc esi
lea eax, [ebp - 0x28]
push eax
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x28], esi
mov dword [ebp - 0x28], esi
call fcn.004050f3
mov eax, dword [ebp - 0x28]
cmp word [eax], bx
pop ecx
je 0x4662d1
mov word [eax], bx
mov ecx, dword [ebp + 0x4c]
push ebx
lea eax, [ebp + 0x30]
push eax
push dword [ebp + 0x28]
call fcn.00444018
mov dword [ebp + 0x24], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0043a0c1
mov eax, dword [ebp - 0x30]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x466320
cmp eax, ebx
je 0x466320
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov dword [ebp + 0x28], ebx
call fcn.00437f27
test eax, eax
pop ecx
pop ecx
je 0x466320
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x466320
mov dword [ebp + 0x3c], esi
lea ecx, [ebp + 0x30]
call fcn.00437960
mov esi, dword [ebp - 0x3c]
jmp 0x466386
push 2
push eax
push 0x4add04
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x466347
mov byte [ebp + 0x6d], 1
jmp 0x466386
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x466364
mov byte [ebp + 0x6f], 1
jmp 0x466386
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4add00
call fcn.0043f1bd
add esp, 0xc
test al, al
jne 0x4663dd
push 0x2d
lea eax, [ebp + 0x78]
call fcn.00405093
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x46623c
jmp 0x4666d5
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x34], eax
lea eax, [ebp + 0x78]
push eax
call fcn.0040507c
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x34]
push eax
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
call fcn.0043a0c1
add esp, 0xc
cmp dword [ebp - 0x4c], edi
je 0x466c00
cmp dword [ebp - 0x4c], ebx
je 0x466c00
push dword [ebp - 0x4c]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x466c00
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x2f], 1
mov byte [ebp + 0x6e], 1
jne 0x4666d5
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x4666a2
mov eax, ecx
call fcn.00482120
test al, al
jne 0x4666a2
cmp cx, 0x2c
je 0x4666a2
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
call fcn.0040507c
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.00438b8f
add esp, 0x10
test al, al
je 0x466478
add dword [ebp + 0x78], 8
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.00448773
test eax, eax
pop ecx
pop ecx
jle 0x466692
mov eax, dword [ebp - 8]
cdq
mov dword [ebp], eax
mov dword [ebp + 4], edx
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
jmp 0x466692
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x4664b5
add dword [ebp + 0x78], 0xa
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.00448773
test eax, eax
pop ecx
pop ecx
jle 0x466692
mov eax, dword [ebp - 8]
cdq
jmp 0x46646d
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x4664fb
add dword [ebp + 0x78], 0xa
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.00448773
test eax, eax
pop ecx
pop ecx
jle 0x466692
mov eax, dword [ebp - 8]
cdq
mov dword [ebp], eax
mov dword [ebp + 4], edx
jmp 0x466692
push 7
push dword [ebp + 0x78]
push str._count
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x466543
add dword [ebp + 0x78], 0xe
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.00448773
test eax, eax
pop ecx
pop ecx
jle 0x466692
mov eax, dword [ebp - 8]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp - 4]
mov dword [ebp + 0x48], eax
jmp 0x466692
push 5
push dword [ebp + 0x78]
push str._len
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x46658b
add dword [ebp + 0x78], 0xa
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.00448773
test eax, eax
pop ecx
pop ecx
jle 0x466692
mov eax, dword [ebp - 8]
mov dword [ebp + 0x54], eax
mov eax, dword [ebp - 4]
mov dword [ebp + 0x58], eax
jmp 0x466692
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x4665c8
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x466692
mov byte [ebp + 0x2e], 1
jmp 0x466692
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x466613
add dword [ebp + 0x78], 0xc
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x68], edi
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.00448773
test eax, eax
pop ecx
pop ecx
jle 0x466692
mov eax, dword [ebp - 8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x40], eax
jmp 0x466692
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x46665a
add dword [ebp + 0x78], 0xe
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.00448773
test eax, eax
pop ecx
pop ecx
jle 0x466692
mov eax, dword [ebp - 8]
mov dword [ebp + 0x64], eax
mov eax, dword [ebp - 4]
mov dword [ebp + 0x68], eax
jmp 0x466692
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x466677
mov byte [ebp + 0x6f], 1
jmp 0x466692
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x466692
mov byte [ebp + 0x6f], 0x10
mov eax, dword [ebp - 0x28]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x4663f2
cmp dword [ebp + 0x68], ebx
jg 0x4666d5
jl 0x4666ae
cmp dword [ebp + 0x64], ebx
jae 0x4666d5
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.0048f8b0
cmp edx, ebx
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x68], edx
jg 0x4666d5
jl 0x4666cf
cmp eax, ebx
jae 0x4666d5
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x68], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4666f0
mov byte [ebp + 0x6f], 1
mov ecx, dword [ebp + 0x4c]
push ebx
push 0x2c
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], esi
call fcn.00433065
cmp word [eax], 0x2c
jne 0x466bfb
mov eax, dword [ebp - 0x24]
mov ax, word [eax]
cmp ax, bx
je 0x466bfb
cmp ax, 0x26
jne 0x466729
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x466731
mov byte [ebp + 0x6e], bl
mov ecx, dword [ebp + 0x4c]
push 1
push ebx
lea eax, [ebp - 0x64]
push eax
push dword [ebp + 0x78]
call fcn.0044c0fc
mov eax, dword [ebp - 0x64]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00448773
cmp dword [ebp + 0x14], ebx
pop ecx
pop ecx
jg 0x46676c
jl 0x466bfb
cmp dword [ebp + 0x10], ebx
jb 0x466bfb
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x18], 0xfffffffc
mov dword [ebp + 0x1c], edi
cmp word [eax], 0x23
mov byte [ebp - 0x35], bl
jne 0x4667aa
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
sete byte [ebp - 0x35]
call fcn.00448773
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.00437e54
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x4667c6
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x58]
cmp eax, ebx
jl 0x4667ec
jg 0x4667d4
cmp dword [ebp + 0x54], ebx
jb 0x4667ec
cmp dword [ebp + 0x1c], eax
jl 0x4667ec
jg 0x4667e3
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [ebp + 0x54]
jbe 0x4667ec
mov ecx, dword [ebp + 0x54]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x1c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
push dword [ebp + 0x78]
call fcn.0040f12a
mov esi, dword [ebp + 0x78]
push esi
push str.zero
call fcn.00438bce
add esp, 0x10
cmp word [esi], bx
mov edi, esi
mov byte [ebp + 0x23], al
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x68], esi
jne 0x466826
xor ebx, ebx
inc ebx
jmp 0x466c00
lea eax, [ebp - 0x28]
push 1
push eax
mov dword [ebp - 0x28], esi
call fcn.00443da3
pop ecx
pop ecx
lea ecx, [ebp - 0x58]
mov esi, eax
call fcn.0043d356
cmp byte [ebp + 0x52], bl
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov byte [ebp + 0x63], bl
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
je 0x4669b7
mov esi, 0x4beb4c
push esi
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp + 0x24]
call fcn.0043d47d
mov ecx, dword [ebp + 0x4c]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.0040ef74
cmp eax, ebx
mov dword [ebp - 0x34], eax
jne 0x466894
lea ecx, [ebp + 0x24]
call fcn.00437960
push esi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x466bf3
mov ecx, dword [ebp + 0x1c]
cmp ecx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ebx
jl 0x4668c7
mov eax, dword [ebp + 0x18]
jg 0x4668ad
cmp eax, ebx
jbe 0x4668c7
mov esi, eax
add esi, dword [ebp + 0x64]
mov edx, ecx
adc edx, dword [ebp + 0x68]
and dword [ebp - 0x5c], 0
cmp edx, dword [ebp - 0x5c]
jl 0x4668ed
jg 0x4668c7
cmp esi, dword [ebp - 0x60]
jbe 0x4668ed
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp + 0x64]
mov ecx, dword [ebp - 0x5c]
sbb ecx, dword [ebp + 0x68]
mov dword [ebp + 0x18], eax
cmp ecx, ebx
mov dword [ebp + 0x1c], ecx
jg 0x4668ed
jl 0x4668e3
cmp eax, ebx
ja 0x4668ed
xor eax, eax
xor ecx, ecx
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], ecx
mov edx, dword [ebp + 0x58]
cmp edx, ebx
jl 0x46690f
jg 0x4668fb
cmp dword [ebp + 0x54], ebx
jb 0x46690f
cmp edx, ecx
jg 0x46690f
jl 0x466906
cmp dword [ebp + 0x54], eax
jae 0x46690f
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
add eax, 0x200000
push eax
lea ecx, [ebp - 0x58]
call fcn.0043d398
mov edi, dword [ebp - 0x58]
cmp edi, ebx
jne 0x46693c
lea ecx, [ebp + 0x24]
call fcn.00437960
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x46787a
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x5c]
add edi, 0x100000
and edi, 0xfff00000
cmp dword [ebp + 0x68], eax
mov dword [ebp - 0x1c], edi
jl 0x46696c
jg 0x466963
mov edx, dword [ebp + 0x64]
cmp edx, dword [ebp - 0x60]
jbe 0x46696c
mov edx, dword [ebp - 0x60]
mov dword [ebp + 0x64], edx
mov dword [ebp + 0x68], eax
mov esi, dword [ebp + 0x18]
add ecx, dword [ebp + 0x64]
mov eax, esi
cdq
cmp edx, ebx
mov dword [ebp - 0x54], esi
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
jl 0x466997
jg 0x466988
cmp eax, ebx
jbe 0x466997
cmp edi, ecx
je 0x466997
push esi
push ecx
push edi
call fcn.004125af
add esp, 0xc
lea ecx, [ebp + 0x24]
mov byte [ebp + 0x63], 1
mov byte [ebp - 0x11], 1
call fcn.00437960
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x466b69
cmp esi, ebx
je 0x466b69
lea eax, [esi + 2]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x5c], 0x20
cmp word [eax], 0x2e
mov byte [ebp - 0x11], 2
mov byte [ebp + 0x63], 2
jne 0x4669ec
inc eax
inc eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x5c], 0x40
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00443cf1
pop ecx
pop ecx
mov cx, word [esi]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x4bde84]
mov word [ebp - 0x34], cx
mov ecx, dword [ebp - 0x28]
mov word [esi], bx
mov dx, word [ecx]
cmp dx, 0x2e
mov dword [ebp + 0x24], ebx
jne 0x466a2c
cmp word [ecx + 2], bx
jne 0x466a2c
mov eax, dword [0x4bde84]
jmp 0x466a3e
cmp dx, bx
je 0x466a3e
push 2
push ebx
push ecx
call dword [sym.imp.KERNEL32.DLL_LoadLibraryExW]
mov dword [ebp + 0x24], eax
cmp eax, ebx
mov cx, word [ebp - 0x34]
mov word [esi], cx
je 0x466a62
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x58]
push ecx
push dword [ebp - 0x3c]
push dword [ebp - 0x10]
push eax
call fcn.00413072
add esp, 0x14
mov edi, eax
cmp dword [ebp + 0x24], ebx
je 0x466a70
push dword [ebp + 0x24]
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
cmp edi, ebx
je 0x46787a
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp + 0x1c]
cmp ecx, ebx
cdq
mov edi, eax
mov esi, edx
jl 0x466aa0
mov eax, dword [ebp + 0x18]
jg 0x466a90
cmp eax, ebx
jbe 0x466aa0
add eax, dword [ebp + 0x64]
adc ecx, dword [ebp + 0x68]
cmp ecx, esi
jl 0x466ac0
jg 0x466aa0
cmp eax, edi
jbe 0x466ac0
mov ecx, edi
sub ecx, dword [ebp + 0x64]
mov eax, esi
sbb eax, dword [ebp + 0x68]
mov dword [ebp + 0x18], ecx
cmp eax, ebx
mov dword [ebp + 0x1c], eax
jg 0x466ac0
jl 0x466aba
cmp ecx, ebx
ja 0x466ac0
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
mov eax, dword [ebp - 0x54]
add eax, 0x200000
push eax
lea ecx, [ebp - 0x58]
call fcn.0043d398
mov eax, dword [ebp - 0x58]
cmp eax, ebx
mov dword [ebp - 0x10], eax
je 0x46787a
push 0x1ff
add eax, edi
push ebx
push eax
call fcn.0048f7a0
add esp, 0xc
cmp dword [ebp + 0x68], esi
jl 0x466b02
jg 0x466afc
cmp dword [ebp + 0x64], edi
jbe 0x466b02
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x68], esi
mov eax, dword [ebp + 0x64]
add dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x58]
cmp eax, ebx
jl 0x466b2e
jg 0x466b16
cmp dword [ebp + 0x54], ebx
jb 0x466b2e
cmp eax, dword [ebp + 0x1c]
jg 0x466b2e
jl 0x466b25
mov ecx, dword [ebp + 0x54]
cmp ecx, dword [ebp + 0x18]
jae 0x466b2e
mov ecx, dword [ebp + 0x54]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x54], eax
cdq
add edi, 0x100000
and edi, 0xfff00000
cmp edx, ebx
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x1c], edi
jl 0x466b69
jg 0x466b57
cmp eax, ebx
jbe 0x466b69
cmp edi, dword [ebp - 0x10]
je 0x466b69
push eax
push dword [ebp - 0x10]
push edi
call fcn.004125af
add esp, 0xc
mov eax, dword [ebp + 0x3c]
cmp eax, ebx
mov dword [ebp - 0x34], ebx
mov byte [ebp + 0x52], bl
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x5c], eax
mov byte [ebp - 0x15], bl
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov byte [ebp + 0x51], 1
je 0x466b92
mov byte [ebp + 0x51], bl
cmp byte [ebp + 0x2f], bl
je 0x466ba7
cmp byte [ebp + 0x2e], bl
sete byte [ebp + 0x52]
cmp byte [ebp + 0x63], bl
jne 0x466ba7
mov byte [ebp + 0x2f], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x466cae
mov esi, 0x4beb4c
push esi
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp + 0x30]
call fcn.0043d47d
mov ecx, dword [ebp + 0x4c]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x24]
call fcn.0040ef74
cmp eax, ebx
jne 0x466c2c
lea ecx, [ebp + 0x30]
call fcn.00437960
push esi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00402b5a
lea ecx, [ebp - 0x58]
call fcn.00437960
mov ebx, 0x80070057
lea ecx, [ebp - 0x24]
call fcn.00437960
lea ecx, [ebp - 0x64]
call fcn.00437960
lea ecx, [ebp - 0x7c]
call fcn.00402b5a
lea ecx, [ebp - 0x80]
call fcn.00437960
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x70
leave
ret 8
mov ecx, dword [eax + 4]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x10]
xor eax, eax
cmp eax, ebx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], eax
jg 0x466c47
jl 0x466bdc
cmp ecx, ebx
jbe 0x466bdc
cmp byte [ebp + 0x63], bl
je 0x466c9d
mov edx, dword [ebp + 0x10]
sub ecx, edx
sbb eax, dword [ebp + 0x14]
mov dword [ebp - 0x30], ecx
cmp eax, dword [ebp + 0x1c]
jl 0x466c6c
mov ecx, dword [ebp + 0x18]
jg 0x466c66
cmp dword [ebp - 0x30], ecx
jbe 0x466c6c
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x30], ecx
cmp eax, ebx
jl 0x466c89
jg 0x466c77
cmp dword [ebp - 0x30], ebx
jbe 0x466c89
push dword [ebp + 8]
mov eax, dword [ebp - 0x10]
add edx, eax
push edi
push edx
call fcn.004125af
add esp, 0xc
lea ecx, [ebp + 0x30]
call fcn.00437960
push esi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x467d07
lea ecx, [ebp + 0x30]
call fcn.00437960
push esi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x466d25
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004435f5
cmp al, bl
pop ecx
pop ecx
mov byte [ebp - 0x15], al
jl 0x466beb
cmp byte [ebp + 0x2f], bl
je 0x466cec
cmp al, bl
jg 0x466cec
cmp dword [ebp + 0x3c], ebx
jne 0x466d07
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp - 0x24]
lea ecx, [ebp + 0x40]
call fcn.0040511c
mov dword [ebp + 0x5c], eax
cmp dword [ebp + 0x5c], ebx
jne 0x466d07
push ebx
push ebx
push 3
push ebx
push 3
push esi
push dword [ebp - 0x24]
lea ecx, [ebp + 0x40]
call fcn.0040511c
mov dword [ebp + 0x5c], eax
cmp dword [ebp + 0x28], ebx
je 0x466d25
cmp dword [ebp + 0x40], ebx
je 0x466d25
push dword [ebp + 0x28]
push dword [ebp + 0x40]
push dword [ebp + 0x4c]
call fcn.004458b6
add esp, 0xc
mov dword [ebp + 0x40], ebx
cmp byte [ebp + 0x2f], 2
jne 0x467828
mov esi, dword [ebp + 0x38]
cmp esi, ebx
jl 0x466beb
mov edi, dword [ebp + 0x34]
jg 0x466d47
cmp edi, ebx
jbe 0x466beb
cmp dword [ebp + 4], ebx
jl 0x466beb
jg 0x466d5b
cmp dword [ebp], ebx
jbe 0x466beb
cmp dword [ebp + 0x58], ebx
jl 0x466d87
jg 0x466d67
cmp dword [ebp + 0x54], ebx
jb 0x466d87
mov eax, edi
add eax, dword [ebp + 0x54]
mov ecx, esi
adc ecx, dword [ebp + 0x58]
push esi
sub eax, 1
push edi
sbb ecx, ebx
push ecx
push eax
call fcn.0048f800
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x466db3
cmp dword [ebp + 0x44], 0xffffffff
jne 0x466da0
mov eax, 0x7fffffff
cmp dword [ebp + 0x48], eax
jne 0x466da0
or dword [ebp + 0x54], 0xffffffff
mov dword [ebp + 0x58], eax
jmp 0x466db3
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push esi
push edi
call fcn.0048f8b0
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x58], edx
push dword [ebp - 0x68]
call fcn.0041113a
pop ecx
push eax
lea ecx, [ebp + 0x28]
call fcn.004457e4
cmp byte [ebp + 0x6d], bl
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], esi
jg 0x466de2
cmp dword [ebp + 0x5c], ebx
jne 0x466de2
lea ecx, [ebp + 0x28]
call fcn.00437960
jmp 0x467872
cmp byte [ebp + 0x6f], bl
je 0x466f20
cmp byte [ebp - 0x15], bl
jg 0x466f20
cmp byte [ebp + 0x6d], bl
jg 0x466f20
cmp dword [ebp + 0x3c], ebx
jne 0x466e0a
lea ecx, [ebp + 0x40]
call fcn.00402b5a
cmp byte [ebp + 0x6f], 1
jne 0x466e1d
push ebx
push ebx
push dword [ebp - 0x24]
call fcn.004433a1
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x466e3c
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp - 0x24]
lea ecx, [ebp + 0x40]
call fcn.0040511c
mov dword [ebp + 0x5c], eax
cmp dword [ebp + 0x5c], ebx
je 0x466dd5
cmp byte [ebp + 0x23], bl
je 0x466f20
cmp dword [ebp + 0x48], ebx
jl 0x4675d5
jg 0x466e5e
cmp dword [ebp + 0x44], ebx
jb 0x466f20
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 4]
push dword [ebp]
call fcn.0048f8b0
cmp dword [ebp + 0x58], ebx
jl 0x466e8d
jg 0x466e7b
cmp dword [ebp + 0x54], ebx
jb 0x466e8d
cmp edx, dword [ebp + 0x58]
jl 0x466e8d
jg 0x466e87
cmp eax, dword [ebp + 0x54]
jbe 0x466e8d
mov eax, dword [ebp + 0x54]
mov edx, dword [ebp + 0x58]
add eax, dword [ebp + 0x10]
mov esi, 0x7fffffff
adc edx, dword [ebp + 0x14]
cmp dword [ebp + 0x48], esi
mov dword [ebp - 0x30], eax
mov edi, edx
jl 0x466eb3
jg 0x466eaa
cmp dword [ebp + 0x44], 0xffffffff
jb 0x466eb3
mov dword [ebp - 0x30], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x52], bl
jne 0x466ed6
push 2
push ebx
push ebx
push dword [ebp + 0x5c]
call fcn.00438aec
add esp, 0x10
cmp edx, edi
jg 0x466ed6
jl 0x466ed2
cmp eax, dword [ebp - 0x30]
jae 0x466ed6
mov byte [ebp + 0x52], 1
push ebx
push edi
push dword [ebp - 0x30]
push dword [ebp + 0x5c]
call fcn.00438aec
add esp, 0x10
cmp eax, dword [ebp - 0x30]
jne 0x466f05
cmp edx, edi
jne 0x466f05
cmp dword [ebp + 0x48], esi
jg 0x466f20
jl 0x4675d5
cmp dword [ebp + 0x44], 0xffffffff
jae 0x466f20
jmp 0x4675d5
cmp dword [ebp + 0x48], esi
jg 0x466f20
jl 0x466f12
cmp dword [ebp + 0x44], 0xffffffff
jae 0x466f20
push ebx
push ebx
push ebx
push dword [ebp + 0x5c]
call fcn.00438aec
add esp, 0x10
cmp dword [ebp + 0x48], ebx
jl 0x4675d5
jg 0x466f34
cmp dword [ebp + 0x44], ebx
jbe 0x4675d5
cmp dword [ebp + 0x58], ebx
jl 0x4675d5
jg 0x466f48
cmp dword [ebp + 0x54], ebx
jbe 0x4675d5
cmp byte [ebp + 0x23], bl
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], ebx
jne 0x466f65
cmp byte [ebp + 0x63], bl
mov byte [ebp + 0x6e], 1
je 0x466f68
mov byte [ebp + 0x6e], bl
cmp byte [ebp - 0x15], bl
mov ecx, dword [ebp + 0x10]
jle 0x466f7e
mov eax, ecx
and eax, 0x1ff
cdq
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
sub ecx, dword [ebp - 0x20]
mov esi, dword [ebp + 0x14]
sbb esi, dword [ebp - 0x1c]
mov edi, ecx
js 0x466fd1
jg 0x466f91
cmp edi, ebx
jbe 0x466fd1
cmp byte [ebp + 0x6d], bl
jg 0x466fd1
push ebx
push esi
push edi
push dword [ebp + 0x5c]
call fcn.00438aec
add esp, 0x10
cmp eax, edi
jne 0x466fac
cmp edx, esi
je 0x466fd1
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
lea ecx, [ebp + 0x28]
call fcn.00437960
lea ecx, [ebp + 0x40]
call fcn.00402b5a
lea ecx, [ebp - 0x58]
call fcn.00437960
jmp 0x466c00
mov eax, dword [ebp + 0x28]
cmp word [eax], 0x26
mov edi, dword [ebp + 0x64]
mov esi, dword [ebp + 0x68]
sete byte [ebp + 0x63]
cmp byte [ebp + 0x63], bl
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], esi
mov dword [ebp + 0x3c], ebx
je 0x4670f1
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp + 0x30]
call fcn.0043d47d
mov ecx, dword [ebp + 0x4c]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x28]
call fcn.0040ef74
cmp eax, ebx
jne 0x46704b
lea ecx, [ebp + 0x30]
call fcn.00437960
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.00402b5a
lea ecx, [ebp + 0x28]
call fcn.00437960
jmp 0x466beb
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x28], ecx
xor ecx, ecx
cmp ecx, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
jg 0x467085
jl 0x467066
cmp eax, ebx
ja 0x467085
mov dword [ebp + 0x24], 0x80070057
lea ecx, [ebp + 0x30]
call fcn.00437960
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x4675cd
cmp byte [ebp + 0x6d], bl
je 0x4670de
mov edx, dword [ebp - 0x48]
sub eax, edi
sbb ecx, esi
mov esi, dword [ebp - 0x4c]
sub esi, dword [ebp + 0x10]
sbb edx, dword [ebp + 0x14]
cmp edx, dword [ebp + 0x58]
jl 0x4670ac
jg 0x4670a6
cmp esi, dword [ebp + 0x54]
jbe 0x4670ac
mov esi, dword [ebp + 0x54]
mov edx, dword [ebp + 0x58]
cmp edx, ecx
jl 0x4670ba
jg 0x4670b6
cmp esi, eax
jbe 0x4670ba
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x46706d
jg 0x4670c4
cmp esi, ebx
jbe 0x46706d
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0x10]
add edi, eax
mov eax, dword [ebp - 0x10]
push esi
add ecx, eax
push edi
push ecx
call fcn.004125af
add esp, 0xc
jmp 0x46706d
lea ecx, [ebp + 0x30]
call fcn.00437960
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x46718e
cmp byte [ebp + 0x63], bl
jg 0x46718e
lea eax, [ebp + 0x28]
push eax
call fcn.00443732
pop ecx
push ebx
push ebx
push 3
push ebx
push 3
movsx eax, al
push 0x80000000
push dword [ebp + 0x28]
lea ecx, [ebp + 0x3c]
mov dword [ebp - 0x3c], eax
call fcn.0040511c
cmp dword [ebp + 0x3c], ebx
jne 0x46713c
lea ecx, [ebp + 0x3c]
call fcn.00402b5a
jmp 0x466dd5
cmp dword [ebp - 0x3c], ebx
jle 0x46714f
mov eax, edi
and eax, 0x1ff
cdq
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
sub edi, dword [ebp + 0x44]
sbb esi, dword [ebp + 0x48]
mov ecx, edi
mov eax, esi
cmp eax, ebx
jl 0x46718e
jg 0x467163
cmp ecx, ebx
jbe 0x46718e
push ebx
push eax
push ecx
push dword [ebp + 0x3c]
call fcn.00438aec
add esp, 0x10
cmp eax, edi
jne 0x467179
cmp edx, esi
je 0x46718e
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.00402b5a
jmp 0x466fb4
mov eax, dword [ebp]
cmp dword [ebp + 0x34], eax
jne 0x46719e
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebp + 4]
je 0x4671a9
add eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 4]
adc ecx, dword [ebp + 0x38]
jmp 0x4671ac
mov eax, dword [ebp + 0x34]
add eax, 0x8000
adc ecx, ebx
mov esi, eax
mov dword [ebp - 0x74], ecx
add esi, 0x2800
adc ecx, ebx
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x100200]
mov dword [ebp - 0x90], ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.0043d373
mov edi, dword [ebp - 0x34]
add edi, 0x100000
and edi, 0xfff00000
lea eax, [esi + edi]
add esi, 0x200
push esi
push ebx
push edi
mov dword [ebp - 0x68], edi
mov dword [ebp + 0x30], eax
call fcn.0048f7a0
mov eax, dword [ebp]
add esp, 0xc
cmp byte [ebp - 0x15], bl
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x24], ebx
jle 0x467229
mov ecx, dword [ebp + 4]
add eax, 0x1ff
adc ecx, ebx
and eax, 0xfffffe00
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x70], eax
jmp 0x467232
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 4]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x3c], ebx
mov eax, dword [ebp + 0x34]
jle 0x467251
mov ecx, dword [ebp + 0x38]
add eax, 0x1ff
adc ecx, ebx
and eax, 0xfffffe00
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
jmp 0x46725a
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x48], eax
cmp dword [ebp + 0x48], ebx
mov byte [ebp + 0x6f], bl
jl 0x4672c7
jg 0x467269
cmp dword [ebp + 0x44], ebx
jbe 0x4672c7
push ebx
lea eax, [ebp + 8]
push eax
mov esi, 0x200
push esi
push edi
push dword [ebp + 0x3c]
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, esi
sub eax, dword [ebp + 0x44]
push 0
pop ecx
sbb ecx, dword [ebp + 0x48]
sub dword [ebp + 0x54], eax
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x68], ecx
sbb dword [ebp + 0x58], ecx
cmp dword [ebp + 0x58], ebx
jg 0x4672b3
jl 0x4672a7
cmp dword [ebp + 0x54], ebx
jae 0x4672b3
mov eax, dword [ebp + 0x54]
add dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x58]
adc dword [ebp + 0x68], eax
push dword [ebp + 0x64]
mov eax, dword [ebp + 0x44]
add eax, edi
push eax
push edi
call fcn.004125af
add esp, 0xc
jmp 0x4672cc
mov esi, 0x200
cmp dword [ebp - 0x1c], ebx
jl 0x467343
jg 0x4672d8
cmp dword [ebp - 0x20], ebx
jbe 0x467343
push 1
push ebx
push ebx
push dword [ebp + 0x5c]
call fcn.00438aec
add esp, 0x10
push ebx
mov dword [ebp + 0x34], eax
lea eax, [ebp + 8]
push eax
push esi
push dword [ebp + 0x30]
mov dword [ebp + 0x38], edx
push dword [ebp + 0x5c]
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
push dword [ebp + 0x64]
mov esi, dword [ebp - 0x20]
lea eax, [esi + edi]
push edi
push eax
call fcn.004125af
push esi
push dword [ebp + 0x30]
push edi
call fcn.004125af
add dword [ebp + 0x64], esi
mov eax, dword [ebp - 0x1c]
push ebx
push dword [ebp + 0x38]
adc dword [ebp + 0x68], eax
push dword [ebp + 0x34]
push dword [ebp + 0x5c]
call fcn.00438aec
add esp, 0x28
cmp byte [ebp + 0x23], bl
je 0x467343
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x68], ebx
mov byte [ebp + 0x2e], 1
jg 0x4674df
jl 0x46735b
cmp dword [ebp + 0x64], ebx
ja 0x4674df
cmp dword [ebp + 0x58], ebx
jl 0x4674e7
jg 0x46736f
cmp dword [ebp + 0x54], ebx
jbe 0x4674e7
cmp byte [ebp + 0x2e], bl
je 0x4674e7
cmp byte [ebp + 0x6e], bl
je 0x467479
mov ecx, dword [ebp + 0x58]
cmp dword [ebp - 0x48], ecx
jg 0x46739b
jl 0x467393
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp + 0x54]
ja 0x46739b
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
jmp 0x46739e
mov eax, dword [ebp + 0x54]
mov esi, eax
add esi, dword [ebp + 0x64]
mov edx, ecx
adc edx, dword [ebp + 0x68]
cmp edx, dword [ebp - 0x74]
jl 0x4673c0
jg 0x4673b4
cmp esi, dword [ebp - 0x78]
jbe 0x4673c0
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp + 0x64]
mov ecx, dword [ebp - 0x74]
sbb ecx, dword [ebp + 0x68]
cmp dword [ebp - 0x3c], ebx
jle 0x4673d1
add eax, 0x1ff
adc ecx, ebx
and eax, 0xfffffe00
cmp byte [ebp + 0x63], bl
je 0x467432
mov esi, dword [ebp - 0x30]
sub esi, dword [ebp - 0x44]
mov edx, dword [ebp - 0x2c]
sbb edx, dword [ebp - 0x40]
cmp edx, ecx
mov dword [ebp - 0x98], edx
jl 0x4673fc
jg 0x4673f2
cmp esi, eax
jbe 0x4673fc
mov edx, ecx
mov esi, eax
mov dword [ebp - 0x98], edx
cmp ecx, ebx
jl 0x467424
jg 0x467406
cmp eax, ebx
jbe 0x467424
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x44]
add ecx, eax
mov eax, dword [ebp + 0x64]
push esi
push ecx
add eax, edi
push eax
call fcn.004125af
mov edx, dword [ebp - 0x98]
add esp, 0xc
add dword [ebp - 0x44], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], edx
adc dword [ebp - 0x40], edx
jmp 0x46744d
push ebx
lea ecx, [ebp + 8]
push ecx
push eax
mov eax, dword [ebp + 0x64]
add eax, edi
push eax
push dword [ebp + 0x3c]
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov esi, dword [ebp + 0xc]
cmp esi, ebx
jl 0x4674e7
mov edx, dword [ebp + 8]
jg 0x467465
cmp edx, ebx
jbe 0x4674e7
cmp esi, dword [ebp + 0x58]
jl 0x4674c4
jg 0x467471
cmp edx, dword [ebp + 0x54]
jbe 0x4674c4
mov edx, dword [ebp + 0x54]
mov esi, dword [ebp + 0x58]
jmp 0x4674be
mov esi, dword [ebp - 0x6c]
cmp esi, dword [ebp + 0x58]
jg 0x467490
jl 0x46748b
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp + 0x54]
ja 0x467490
mov edx, dword [ebp - 0x70]
jmp 0x467496
mov edx, dword [ebp + 0x54]
mov esi, dword [ebp + 0x58]
mov ecx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x68]
add ecx, edx
adc eax, esi
cmp eax, dword [ebp - 0x74]
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], esi
jl 0x4674c4
jg 0x4674b2
cmp ecx, dword [ebp - 0x78]
jbe 0x4674c4
mov edx, dword [ebp - 0x78]
sub edx, dword [ebp + 0x64]
mov esi, dword [ebp - 0x74]
sbb esi, dword [ebp + 0x68]
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], esi
cmp dword [ebp + 0x54], 0xffffffff
jne 0x4674d3
cmp dword [ebp + 0x58], 0x7fffffff
je 0x4674d9
sub dword [ebp + 0x54], edx
sbb dword [ebp + 0x58], esi
add dword [ebp + 0x64], edx
adc dword [ebp + 0x68], esi
mov dword [ebp - 0x1c], edi
jmp 0x4677a2
cmp dword [ebp + 0x68], ebx
jl 0x4677f4
jg 0x4674fb
cmp dword [ebp + 0x64], ebx
jbe 0x4677f4
mov byte [ebp + 0x2e], bl
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ebp + 0x68]
cmp ecx, eax
jg 0x467520
jl 0x467515
mov edx, dword [ebp - 0x70]
cmp edx, dword [ebp + 0x64]
ja 0x467520
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ecx
jmp 0x467529
mov ecx, dword [ebp + 0x64]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
cmp byte [ebp - 0x15], bl
mov dword [ebp + 0x4c], ebx
jle 0x46753b
mov eax, dword [ebp + 0x34]
and eax, 0x1ff
jmp 0x46753d
xor eax, eax
mov esi, dword [ebp + 0x34]
mov edi, dword [ebp + 0x38]
xor ecx, ecx
sub esi, eax
sbb edi, ecx
mov dword [ebp + 0x44], eax
mov dword [ebp - 0x94], esi
js 0x4675e2
jg 0x467562
cmp esi, ebx
jbe 0x4675e2
cmp byte [ebp + 0x6d], bl
je 0x46758a
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x10]
push esi
push dword [ebp - 0x1c]
add ecx, eax
push ecx
call fcn.004125af
add esp, 0xc
add dword [ebp + 0x10], esi
mov dword [ebp + 0x4c], esi
adc dword [ebp + 0x14], edi
jmp 0x467743
push ebx
lea eax, [ebp + 0x4c]
push eax
push esi
push dword [ebp - 0x1c]
push dword [ebp + 0x5c]
call fcn.0043be87
add esp, 0x14
test eax, eax
jne 0x467743
cmp byte [ebp + 0x51], bl
jne 0x4676d6
call dword [sym.imp.KERNEL32.DLL_GetLastError]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, ebx
jne 0x4675c2
xor eax, eax
inc eax
mov dword [ebp + 0x24], eax
lea ecx, [ebp - 0x34]
call fcn.00437960
lea ecx, [ebp + 0x3c]
call fcn.00402b5a
lea ecx, [ebp + 0x28]
call fcn.00437960
jmp 0x467d07
xor eax, eax
cmp eax, ebx
jl 0x467690
jg 0x4675f7
cmp dword [ebp + 0x44], ebx
jbe 0x467690
mov esi, 0x200
push esi
push ebx
push dword [ebp + 0x30]
call fcn.0048f7a0
sub esi, dword [ebp + 0x44]
push 0
pop edi
push edi
pop eax
push 1
push ebx
push ebx
push dword [ebp + 0x5c]
sbb edi, eax
call fcn.00438aec
add esp, 0x1c
push ebx
mov dword [ebp - 0x8c], eax
lea eax, [ebp + 8]
push eax
push 0x200
push dword [ebp + 0x30]
mov dword [ebp - 0x88], edx
push dword [ebp + 0x5c]
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x44]
add eax, ecx
mov ecx, dword [ebp - 0x1c]
push esi
push eax
mov eax, dword [ebp + 0x64]
add eax, ecx
push eax
call fcn.004125af
add dword [ebp + 0x64], esi
push ebx
push dword [ebp - 0x88]
adc dword [ebp + 0x68], edi
push dword [ebp - 0x8c]
mov dword [ebp + 0x34], 0x200
push dword [ebp + 0x5c]
mov dword [ebp + 0x38], ebx
call fcn.00438aec
add esp, 0x1c
cmp byte [ebp + 0x23], bl
je 0x467690
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x4c], ebx
jl 0x46777c
jg 0x4676a7
cmp dword [ebp + 0x34], ebx
jbe 0x46777c
push ebx
lea eax, [ebp + 0x4c]
push eax
push dword [ebp + 0x34]
push dword [ebp - 0x1c]
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
jne 0x46777c
cmp byte [ebp + 0x51], bl
je 0x4677ed
mov esi, dword [ebp - 0x94]
mov byte [ebp + 0x51], 2
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov al, byte [ebp + 0x51]
lea ecx, [ebp + 0x40]
mov byte [ebp + 0x53], al
mov byte [ebp + 0x51], bl
mov dword [ebp + 0x4c], ebx
call fcn.00402b5a
push ebx
push ebx
push 4
push ebx
push ebx
mov edi, 0xc0000000
push edi
push dword [ebp - 0x24]
lea ecx, [ebp + 0x40]
call fcn.0040511c
cmp eax, ebx
mov dword [ebp + 0x5c], eax
jne 0x467723
push ebx
push ebx
push 3
push ebx
push ebx
push edi
push dword [ebp - 0x24]
lea ecx, [ebp + 0x40]
call fcn.0040511c
mov dword [ebp + 0x5c], eax
push ebx
lea ecx, [ebp + 0x4c]
push ecx
push esi
push dword [ebp - 0x1c]
push eax
call fcn.0043be87
add esp, 0x14
test eax, eax
je 0x4675af
cmp byte [ebp + 0x53], 2
je 0x46777c
cmp dword [ebp + 0x4c], esi
jbe 0x46774b
mov dword [ebp + 0x4c], esi
cmp byte [ebp + 0x6f], bl
je 0x467762
push dword [ebp + 0x4c]
push ebx
push dword [ebp - 0x1c]
call fcn.0048f7a0
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x4c]
sub dword [ebp + 0x34], eax
mov byte [ebp + 0x51], bl
sbb dword [ebp + 0x38], ebx
sub dword [ebp + 0x64], eax
sbb dword [ebp + 0x68], ebx
add dword [ebp - 0x1c], esi
jmp 0x4675e2
cmp byte [ebp + 0x6f], bl
je 0x467793
push dword [ebp + 0x4c]
push ebx
push dword [ebp - 0x1c]
call fcn.0048f7a0
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x4c]
add dword [ebp - 0x1c], eax
sub dword [ebp + 0x64], eax
mov edi, dword [ebp - 0x68]
sbb dword [ebp + 0x68], ebx
mov eax, dword [ebp + 0x68]
cmp eax, dword [ebp + 4]
jg 0x467501
jl 0x4677bc
mov eax, dword [ebp]
cmp dword [ebp + 0x64], eax
jae 0x467501
cmp dword [ebp + 0x68], ebx
jl 0x46735b
jg 0x4677d0
cmp dword [ebp + 0x64], ebx
jbe 0x46735b
cmp edi, dword [ebp - 0x1c]
je 0x46735b
push dword [ebp + 0x64]
push dword [ebp - 0x1c]
push edi
call fcn.004125af
add esp, 0xc
jmp 0x46735b
mov dword [ebp + 0x24], 1
cmp dword [ebp + 0x24], ebx
jne 0x4675b5
cmp dword [ebp + 0x58], ebx
jl 0x467820
jg 0x467809
cmp dword [ebp + 0x54], ebx
jbe 0x467820
cmp dword [ebp + 0x54], 0xffffffff
jne 0x4675b5
cmp dword [ebp + 0x58], 0x7fffffff
jne 0x4675b5
mov dword [ebp + 0x24], ebx
jmp 0x4675c5
cmp byte [ebp + 0x6d], bl
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp + 0x4c], ebx
jne 0x46798a
cmp byte [ebp - 0x15], 0x11
jne 0x467887
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x34]
push dword [ebp + 0x5c]
call fcn.0044b0d0
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
jg 0x4678f1
jl 0x467872
cmp eax, ebx
jae 0x4678f1
lea ecx, [ebp + 0x40]
call fcn.00402b5a
lea ecx, [ebp - 0x58]
call fcn.00437960
jmp 0x46681e
cmp dword [ebp + 0x5c], ebx
je 0x4678f7
cmp byte [ebp - 0x15], bl
jne 0x4678cc
push 2
push ebx
push ebx
push dword [ebp + 0x5c]
call fcn.00438aec
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 0x4678f7
jl 0x4678bc
cmp edi, ecx
jae 0x4678f7
cmp dword [ebp + 0x3c], ebx
jne 0x4678f7
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x4678f7
push dword [ebp - 0x15]
push dword [ebp + 0x5c]
call fcn.0043be15
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x4678f7
jl 0x4678e7
cmp edi, ebx
jae 0x4678f7
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x4678f7
mov esi, dword [ebp - 0x40]
mov edi, dword [ebp - 0x44]
cmp byte [ebp - 0x35], bl
je 0x467922
cmp dword [ebp + 0x18], 0xfffffffc
jne 0x467922
mov ecx, edi
sub ecx, dword [ebp + 0x10]
mov eax, esi
sbb eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], ecx
cmp eax, ebx
mov dword [ebp + 0x1c], eax
jg 0x467922
jl 0x46791c
cmp ecx, ebx
jae 0x467922
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
cmp dword [ebp + 0x5c], ebx
jne 0x467968
cmp byte [ebp - 0x15], bl
jne 0x46795b
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x24]
call fcn.004433a1
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp - 0x24]
lea ecx, [ebp + 0x40]
call fcn.0040511c
cmp eax, ebx
mov dword [ebp + 0x5c], eax
jne 0x467972
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
jmp 0x466fbc
cmp byte [ebp + 0x6e], bl
je 0x46797a
cmp byte [ebp - 0x15], bl
jne 0x46797f
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp byte [ebp - 0x15], bl
je 0x46798a
mov eax, dword [ebp + 0x10]
and eax, 0x1ff
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x14]
adc ecx, dword [ebp - 0x2c]
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 0x4679ea
movzx eax, word [ebp + 0x4c]
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 + 0x5c]
call fcn.00438aec
add esp, 0x10
cmp edx, ebx
jg 0x4679ea
jl 0x4679d5
cmp eax, ebx
jae 0x4679ea
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.00437960
jmp 0x466fbc
cmp byte [ebp - 0x11], bl
je 0x467a47
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x44]
jl 0x467a07
jg 0x467a01
cmp eax, dword [ebp + 8]
jbe 0x467a07
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
cmp byte [ebp + 0x6d], bl
je 0x467a26
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x10]
push dword [ebp - 0x1c]
add ecx, eax
push ecx
call fcn.004125af
add esp, 0xc
jmp 0x467cf1
cmp ecx, ebx
jl 0x467cf1
jg 0x467a38
cmp eax, ebx
jbe 0x467cf1
push dword [ebp - 0x15]
movzx edx, word [ebp + 0x4c]
push edx
push ecx
push eax
push dword [ebp - 0x1c]
jmp 0x467ab8
mov eax, dword [ebp + 0x1c]
cmp eax, ebx
jl 0x467a6d
jg 0x467a55
cmp dword [ebp + 0x18], ebx
jb 0x467a6d
cmp eax, dword [ebp + 0x48]
jg 0x467a6d
jl 0x467a64
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [ebp + 0x44]
jae 0x467a6d
mov ecx, dword [ebp + 0x18]
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x48], eax
cmp byte [ebp + 0x53], bl
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0x78], ecx
je 0x467ac8
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
lea ecx, [ebp + 0x3c]
call fcn.0043d405
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x48]
jl 0x467aa0
jg 0x467a9d
cmp eax, dword [ebp + 0x44]
jbe 0x467aa0
mov ecx, dword [ebp + 0x44]
cmp ecx, ebx
jle 0x467cf1
push dword [ebp - 0x15]
movzx eax, word [ebp + 0x4c]
push eax
mov eax, ecx
cdq
push edx
push eax
push dword [ebp + 0x3c]
push dword [ebp + 0x5c]
call fcn.0044b1a4
add esp, 0x18
jmp 0x467cf1
movzx eax, word [ebp + 0x4c]
mov edi, 0x200
lea esi, [ebp - 0x29c]
sub edi, eax
mov al, byte [ebp - 9]
and esi, 0xfffffe00
cmp dword [ebp + 0x48], ebx
mov dword [ebp], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
mov byte [ebp + 0x53], bl
mov byte [ebp + 0x6e], al
jl 0x467cf1
jg 0x467b0d
cmp dword [ebp + 0x44], ebx
jbe 0x467cf1
jmp 0x467b0d
mov ecx, dword [ebp + 0x78]
cmp dword [ebp + 4], ebx
jg 0x467b22
jl 0x467b19
cmp dword [ebp], ebx
ja 0x467b22
cmp word [ecx], bx
je 0x467cf1
cmp edi, ebx
mov dword [ebp + 0x30], ebx
jle 0x467cf1
cmp dword [ebp + 0x48], ebx
jl 0x467c92
jg 0x467b41
cmp dword [ebp + 0x44], ebx
jbe 0x467c92
cmp dword [ebp + 4], ebx
jg 0x467c6d
jl 0x467b55
cmp dword [ebp], ebx
ja 0x467c6d
cmp word [ecx], bx
je 0x467c92
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
pop ecx
mov ecx, dword [ebp + 0x78]
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
cmp word [ecx], 0x2a
mov dword [ebp - 0x68], ecx
jne 0x467bd2
lea eax, [ebp]
push eax
inc ecx
lea eax, [ebp + 0x78]
inc ecx
push eax
mov dword [ebp], 1
mov dword [ebp + 4], ebx
mov dword [ebp + 0x78], ecx
call fcn.00448773
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
jmp 0x467bd2
cmp ax, 0x2a
je 0x467c67
cmp ax, 0x28
je 0x467bfa
cmp ax, 0x30
jb 0x467bb9
cmp ax, 0x39
jbe 0x467bda
cmp byte [ebp + 0x6e], bl
je 0x467bcd
or eax, 0x20
cmp ax, 0x61
jb 0x467bcd
cmp ax, 0x7a
jbe 0x467bda
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov ax, word [ecx]
cmp ax, bx
jne 0x467b9d
cmp word [ecx], 0x30
jne 0x467c14
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x78
jne 0x467c14
add ecx, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], ecx
jmp 0x467c19
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
call fcn.00448773
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
jmp 0x467c67
cmp byte [ebp + 0x6e], bl
je 0x467c4b
push 2
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
call fcn.0043dfd5
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
push eax
call fcn.0041270e
add esp, 0x10
test al, al
jne 0x467c62
mov al, byte [ebp - 9]
mov byte [ebp + 0x6e], al
jmp 0x467c62
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004488bd
cmp eax, 1
pop ecx
pop ecx
jl 0x467c92
mov ecx, dword [ebp + 0x78]
cmp ecx, dword [ebp - 0x68]
je 0x467c92
mov al, byte [ebp + 0x34]
mov byte [ebp + 0x53], al
add dword [ebp], 0xffffffff
mov edx, dword [ebp + 0x30]
mov al, byte [ebp + 0x53]
adc dword [ebp + 4], 0xffffffff
inc dword [ebp + 0x30]
add dword [ebp + 0x44], 0xffffffff
mov byte [edx + esi], al
adc dword [ebp + 0x48], 0xffffffff
cmp dword [ebp + 0x30], edi
jl 0x467b2d
mov edi, dword [ebp + 0x30]
cmp edi, ebx
jle 0x467cf1
cmp byte [ebp + 0x6d], bl
je 0x467cbc
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x10]
push edi
add ecx, eax
push esi
push ecx
call fcn.004125af
mov eax, edi
cdq
add esp, 0xc
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp 0x467cd5
push dword [ebp - 0x15]
movzx eax, word [ebp + 0x4c]
push eax
mov eax, edi
cdq
push edx
push eax
push esi
push dword [ebp + 0x5c]
call fcn.0044b1a4
add esp, 0x18
cmp dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
mov edi, 0x200
jg 0x467b0a
jl 0x467cf1
cmp dword [ebp + 0x44], ebx
ja 0x467b0a
cmp dword [ebp + 0x5c], ebx
je 0x467cff
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.00437960
cmp byte [ebp + 0x52], bl
je 0x467d1a
cmp dword [ebp + 0x5c], ebx
je 0x467d1a
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.DLL_SetEndOfFile]
lea ecx, [ebp + 0x40]
call fcn.00402b5a
lea ecx, [ebp - 0x58]
call fcn.00437960
mov ebx, dword [ebp + 0x24]
jmp 0x466c00