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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x498
mov edx, dword [ebp + 0x78]
push ebx
xor ebx, ebx
push esi
mov dword [ebp - 0x20], ecx
push edi
mov byte [ebp + 0x60], bl
mov byte [ebp + 0x61], bl
mov byte [ebp + 0x5f], bl
xor ecx, ecx
jmp 0x43b7fe
mov eax, ecx
call fcn.004213da
test al, al
jne 0x43b806
cmp cx, 0x2a
jne 0x43b7e1
mov al, byte [edx]
mov byte [ebp + 0x60], al
jmp 0x43b7f9
cmp cx, 0x2e
jne 0x43b7ee
mov al, byte [edx]
mov byte [ebp + 0x61], al
jmp 0x43b7f9
cmp cx, 0x23
jne 0x43b7f9
mov al, byte [edx]
mov byte [ebp + 0x5f], al
inc edx
inc edx
mov dword [ebp + 0x78], edx
mov cx, word [edx]
cmp cx, bx
jne 0x43b7c9
lea ecx, [ebp + 0x78]
call fcn.00429ef2
push 1
lea ecx, [ebp + 0x20]
call fcn.0042465d
mov eax, 0x200
mov dword [ebp + 0x4c], eax
mov dword [ebp], eax
push 3
lea eax, [ebp + 0x78]
or esi, 0xffffffff
push eax
push 0x47b734
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x28], 0x7fffffff
xor edi, edi
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x64], esi
mov dword [ebp + 0x68], esi
mov dword [ebp + 8], ebx
mov byte [ebp + 0x62], bl
mov byte [ebp + 0x63], bl
mov byte [ebp + 0x5e], bl
mov byte [ebp + 0x53], bl
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x43bb53
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x5e], 1
mov byte [ebp + 0x60], 1
jne 0x43bb53
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x43bb22
mov eax, ecx
call fcn.004213da
test al, al
jne 0x43bb22
cmp cx, 0x2c
je 0x43bb22
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.004257a3
add esp, 0xc
test al, al
je 0x43b8f6
add dword [ebp + 0x78], 8
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.0042f308
test eax, eax
pop ecx
pop ecx
jle 0x43bb0d
mov eax, dword [ebp + 0x54]
mov dword [ebp], eax
mov dword [ebp + 0x4c], eax
jmp 0x43bb0d
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.004257a3
add esp, 0xc
test al, al
je 0x43b932
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.0042f308
test eax, eax
pop ecx
pop ecx
jle 0x43bb0d
mov eax, dword [ebp + 0x54]
jmp 0x43b8ee
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.004257a3
add esp, 0xc
test al, al
je 0x43b974
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.0042f308
test eax, eax
pop ecx
pop ecx
jle 0x43bb0d
mov eax, dword [ebp + 0x54]
mov dword [ebp], eax
jmp 0x43bb0d
push 7
push dword [ebp + 0x78]
push str._count
call fcn.004257a3
add esp, 0xc
test al, al
je 0x43b9bc
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.0042f308
test eax, eax
pop ecx
pop ecx
jle 0x43bb0d
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x28], eax
jmp 0x43bb0d
push 5
push dword [ebp + 0x78]
push str._len
call fcn.004257a3
add esp, 0xc
test al, al
je 0x43ba04
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.0042f308
test eax, eax
pop ecx
pop ecx
jle 0x43bb0d
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x68], eax
jmp 0x43bb0d
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.004257a3
add esp, 0xc
test al, al
je 0x43ba47
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.004257a3
add esp, 0xc
test al, al
je 0x43ba38
mov byte [ebp + 0x63], 1
lea eax, [ebp + 0x78]
push eax
call fcn.00403953
pop ecx
jmp 0x43bb0d
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.004257a3
add esp, 0xc
test al, al
je 0x43ba8f
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.0042f308
test eax, eax
pop ecx
pop ecx
jle 0x43bb0d
mov eax, dword [ebp + 0x58]
mov edi, dword [ebp + 0x54]
mov dword [ebp - 0x18], eax
jmp 0x43bb0d
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.004257a3
add esp, 0xc
test al, al
je 0x43bad5
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
xor edi, edi
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.0042f308
test eax, eax
pop ecx
pop ecx
jle 0x43bb0d
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x40], eax
jmp 0x43bb0d
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x43baf2
mov byte [ebp + 0x53], 1
jmp 0x43bb0d
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x43bb0d
mov byte [ebp + 0x53], 0x10
lea ecx, [ebp + 0x78]
call fcn.00429ef2
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x43b886
cmp dword [ebp + 0x40], ebx
jg 0x43bb53
jl 0x43bb2e
cmp dword [ebp + 0x3c], ebx
jae 0x43bb53
push dword [ebp - 0x18]
mov eax, dword [ebp + 0x4c]
cdq
push edi
push edx
push eax
call fcn.00462a80
cmp edx, ebx
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], edx
jg 0x43bb53
jl 0x43bb4d
cmp eax, ebx
jae 0x43bb53
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x43bb6e
mov byte [ebp + 0x53], 1
push 0x2c
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042df66
mov eax, dword [ebp + 0x20]
push eax
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x20], ebx
call fcn.00412d51
add esp, 0x10
push eax
lea ecx, [ebp + 0x20]
call fcn.0042a1b7
lea ecx, [ebp + 0x58]
call fcn.00424686
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2c
jne 0x43c6fb
mov eax, dword [ebp + 0x20]
cmp word [eax], bx
je 0x43c6fb
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f308
cmp dword [ebp + 0x18], ebx
pop ecx
pop ecx
jg 0x43bbe0
jl 0x43c6fb
cmp dword [ebp + 0x14], ebx
jb 0x43c6fb
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x23
push 0xfffffffffffffffc
pop edi
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x34], esi
jne 0x43bc08
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f308
mov edi, dword [ebp + 0x30]
pop ecx
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x43bc14
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x68]
cmp eax, ebx
jl 0x43bc37
jg 0x43bc22
cmp dword [ebp + 0x64], ebx
jb 0x43bc37
cmp dword [ebp + 0x34], eax
jl 0x43bc37
jg 0x43bc2e
cmp edi, dword [ebp + 0x64]
jbe 0x43bc37
mov edi, dword [ebp + 0x64]
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x34], eax
lea ecx, [ebp + 0x78]
call fcn.00429ef2
mov esi, dword [ebp + 0x78]
push esi
call fcn.0040a96b
push esi
push str.zero
call fcn.004257d3
add esp, 0xc
cmp word [esi], bx
mov byte [ebp + 0x47], al
mov dword [ebp + 0x38], esi
jne 0x43bc69
xor esi, esi
inc esi
jmp 0x43c700
lea ecx, [ebp - 0x14]
call fcn.00424559
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov byte [ebp + 0x52], bl
mov dword [ebp - 0x18], ebx
je 0x43bdb0
push 0x48b5d4
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp - 4]
call fcn.0042460b
mov ecx, dword [ebp - 0x20]
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x78]
call fcn.0040a6dc
mov esi, eax
cmp esi, ebx
jne 0x43bcc5
lea ecx, [ebp - 4]
call fcn.00424686
push 0x48b5d4
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x43c6f3
mov ecx, dword [esi + 8]
and ecx, 0x3fffffff
cmp dword [ebp + 0x34], ebx
jl 0x43bcea
jg 0x43bcd9
cmp edi, ebx
jbe 0x43bcea
mov eax, ecx
cdq
cmp dword [ebp + 0x34], edx
mov dword [ebp - 0x28], eax
jl 0x43bcf2
jg 0x43bcea
cmp edi, eax
jbe 0x43bcf2
mov eax, ecx
cdq
mov edi, eax
mov dword [ebp + 0x34], edx
mov eax, dword [ebp + 0x68]
cmp eax, ebx
jl 0x43bd12
jg 0x43bd00
cmp dword [ebp + 0x64], ebx
jb 0x43bd12
cmp eax, dword [ebp + 0x34]
jg 0x43bd12
jl 0x43bd0c
cmp dword [ebp + 0x64], edi
jae 0x43bd12
mov edi, dword [ebp + 0x64]
mov dword [ebp + 0x34], eax
lea eax, [edi + 0x200000]
push eax
lea ecx, [ebp - 0x14]
call fcn.0042459d
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jne 0x43bd40
lea ecx, [ebp - 4]
call fcn.00424686
push 0x48b5d4
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x43c756
mov edx, dword [ebp + 0x40]
mov ecx, dword [esi + 4]
add eax, 0x100000
and eax, 0xfff00000
cmp edx, dword [ebp + 0x34]
mov dword [ebp + 0x38], eax
jl 0x43bd68
jg 0x43bd5f
cmp dword [ebp + 0x3c], edi
jbe 0x43bd68
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x40], edx
add ecx, dword [ebp + 0x3c]
sub edi, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
sbb dword [ebp + 0x34], edx
cmp edi, ebx
mov dword [ebp + 0x30], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x18], edi
jle 0x43bd90
cmp eax, ecx
je 0x43bd90
push edi
push ecx
push eax
call fcn.00461d90
add esp, 0xc
lea ecx, [ebp - 4]
mov byte [ebp + 0x52], 1
mov byte [ebp + 0x62], 1
call fcn.00424686
push 0x48b5d4
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x43bf08
cmp word [esi], 0x23
jne 0x43bf08
mov ecx, dword [ebp + 0x78]
add ecx, 2
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.0040e5a7
add esp, 4
test al, al
jne 0x43bdf4
cmp dx, 0x2e
jne 0x43bf08
mov eax, dword [ebp + 0x78]
movzx eax, word [eax + 4]
push eax
call fcn.0040e5a7
add esp, 4
test al, al
je 0x43bf08
mov eax, dword [ebp + 0x78]
mov al, byte [eax]
mov byte [ebp + 0x62], al
mov byte [ebp + 0x52], al
mov eax, ecx
cmp word [eax], 0x2e
push 0x20
mov dword [ebp + 0x38], eax
pop esi
jne 0x43be1a
mov cl, byte [eax]
inc eax
inc eax
push 0x40
mov byte [ebp + 0x62], cl
mov dword [ebp + 0x38], eax
pop esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.00431b04
push esi
lea ecx, [ebp - 0x14]
push ecx
push eax
push dword [ebp + 8]
push dword [0x48add0]
call fcn.0040e9a5
add esp, 0x1c
cmp eax, ebx
je 0x43c756
mov esi, dword [ebp + 0x34]
cmp esi, ebx
mov ecx, dword [ebp - 0x10]
jl 0x43be63
jg 0x43be56
cmp edi, ebx
jbe 0x43be63
mov eax, ecx
cdq
cmp esi, edx
jl 0x43be6a
jg 0x43be63
cmp edi, eax
jbe 0x43be6a
mov eax, ecx
cdq
mov edi, eax
mov esi, edx
add ecx, 0x200000
push ecx
lea ecx, [ebp - 0x14]
call fcn.0042459d
mov eax, dword [ebp - 0x14]
cmp eax, ebx
mov dword [ebp + 0x58], eax
je 0x43c756
mov ecx, dword [ebp - 0x10]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.00461780
add esp, 0xc
cmp dword [ebp + 0x40], esi
jl 0x43bead
jg 0x43bea7
cmp dword [ebp + 0x3c], edi
jbe 0x43bead
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x40], esi
mov ecx, dword [ebp + 0x58]
add ecx, dword [ebp + 0x3c]
sub edi, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x68]
sbb esi, dword [ebp + 0x40]
cmp eax, ebx
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x34], esi
jl 0x43bee1
jg 0x43becd
cmp dword [ebp + 0x64], ebx
jb 0x43bee1
cmp eax, esi
jg 0x43bee1
jl 0x43bed8
cmp dword [ebp + 0x64], edi
jae 0x43bee1
mov edi, dword [ebp + 0x64]
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x34], eax
lea eax, [ecx + 0x100000]
and eax, 0xfff00000
cmp edi, ebx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x18], edi
mov dword [ebp + 0x38], eax
jle 0x43bf08
cmp eax, ecx
je 0x43bf08
push edi
push ecx
push eax
call fcn.00461d90
add esp, 0xc
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x20]
push eax
mov dword [ebp + 0x58], ebx
mov byte [ebp + 0x5f], bl
mov dword [ebp + 8], ebx
mov dword [ebp + 0x6c], ebx
call fcn.00431533
cmp al, bl
pop ecx
pop ecx
mov byte [ebp + 0x2c], al
jl 0x43c6eb
cmp byte [ebp + 0x5e], bl
je 0x43bf43
cmp byte [ebp + 0x63], bl
jne 0x43bf40
cmp al, bl
mov byte [ebp + 0x5f], 1
jle 0x43bf43
mov byte [ebp + 0x5f], bl
cmp byte [ebp + 0x5e], bl
mov byte [ebp + 0x63], 1
je 0x43bf55
cmp byte [ebp + 0x52], bl
jne 0x43bf55
mov byte [ebp + 0x5e], 2
cmp byte [ebp + 0x5e], 2
mov esi, 0xc0000000
jne 0x43bf7d
cmp byte [ebp + 0x2c], bl
jg 0x43bf7d
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp + 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00403993
cmp dword [ebp + 0x6c], ebx
jne 0x43bf9a
push ebx
push ebx
push 3
push ebx
push 3
push esi
push dword [ebp + 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00403993
cmp byte [ebp + 0x5e], 2
jne 0x43c714
mov edi, dword [ebp + 0x4c]
cmp edi, ebx
jle 0x43c6eb
cmp dword [ebp], ebx
jle 0x43c6eb
cmp dword [ebp + 0x68], ebx
jl 0x43bfe2
jg 0x43bfba
cmp dword [ebp + 0x64], ebx
jb 0x43bfe2
mov eax, edi
cdq
mov ecx, eax
add ecx, dword [ebp + 0x64]
mov esi, edx
adc esi, dword [ebp + 0x68]
push edx
sub ecx, 1
push eax
sbb esi, ebx
push esi
push ecx
call fcn.00462660
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], edx
mov esi, 0xc0000000
jmp 0x43c011
cmp dword [ebp + 0x24], 0xffffffff
jne 0x43bffb
mov eax, 0x7fffffff
cmp dword [ebp + 0x28], eax
jne 0x43bffb
or dword [ebp + 0x64], 0xffffffff
mov dword [ebp + 0x68], eax
jmp 0x43c011
push dword [ebp + 0x28]
mov eax, edi
push dword [ebp + 0x24]
cdq
push edx
push eax
call fcn.00462a80
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x68], edx
push dword [ebp + 0x78]
call fcn.00412d51
pop ecx
push eax
lea ecx, [ebp + 4]
call fcn.0042a183
cmp dword [ebp + 0x6c], ebx
jne 0x43c035
lea ecx, [ebp + 4]
call fcn.00424686
jmp 0x43c74e
cmp byte [ebp + 0x53], bl
mov dword [ebp + 0x1c], edi
je 0x43c13b
cmp byte [ebp + 0x2c], bl
jg 0x43c13b
lea ecx, [ebp + 0x6c]
call fcn.00402905
cmp byte [ebp + 0x53], 1
jne 0x43c065
push ebx
push ebx
push dword [ebp + 0x20]
call fcn.00431202
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp + 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00403993
cmp dword [ebp + 0x6c], ebx
je 0x43c028
cmp byte [ebp + 0x47], bl
je 0x43c13b
cmp dword [ebp + 0x28], ebx
jl 0x43c4f9
jg 0x43c09a
cmp dword [ebp + 0x24], ebx
jbe 0x43c4f9
push dword [ebp + 0x28]
mov eax, dword [ebp]
push dword [ebp + 0x24]
cdq
push edx
push eax
call fcn.00462a80
cmp dword [ebp + 0x68], ebx
jl 0x43c0c9
jg 0x43c0b7
cmp dword [ebp + 0x64], ebx
jb 0x43c0c9
cmp edx, dword [ebp + 0x68]
jl 0x43c0c9
jg 0x43c0c3
cmp eax, dword [ebp + 0x64]
jbe 0x43c0c9
mov eax, dword [ebp + 0x64]
mov edx, dword [ebp + 0x68]
add eax, dword [ebp + 0x14]
adc edx, dword [ebp + 0x18]
mov edi, eax
mov eax, 0x7fffffff
cmp dword [ebp + 0x28], eax
mov esi, edx
jl 0x43c0ec
jg 0x43c0e5
cmp dword [ebp + 0x24], 0xffffffff
jb 0x43c0ec
mov edi, 0xfffffdff
mov esi, eax
push ebx
push esi
push edi
push dword [ebp + 0x6c]
call fcn.0042572e
add esp, 0x10
cmp eax, edi
jne 0x43c11c
cmp edx, esi
jne 0x43c11c
cmp dword [ebp + 0x28], 0x7fffffff
jg 0x43c13b
jl 0x43c4f9
cmp dword [ebp + 0x24], 0xffffffff
jae 0x43c13b
jmp 0x43c4f9
cmp dword [ebp + 0x28], 0x7fffffff
jg 0x43c13b
jl 0x43c12d
cmp dword [ebp + 0x24], 0xffffffff
jae 0x43c13b
push ebx
push ebx
push ebx
push dword [ebp + 0x6c]
call fcn.0042572e
add esp, 0x10
cmp dword [ebp + 0x28], ebx
jl 0x43c4f9
jg 0x43c14f
cmp dword [ebp + 0x24], ebx
jbe 0x43c4f9
cmp dword [ebp + 0x68], ebx
jl 0x43c4f9
jg 0x43c163
cmp dword [ebp + 0x64], ebx
jbe 0x43c4f9
xor eax, eax
cmp byte [ebp + 0x47], bl
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x10], ebx
jne 0x43c17c
cmp byte [ebp + 0x52], bl
mov byte [ebp + 0x62], 1
je 0x43c17f
mov byte [ebp + 0x62], bl
cmp byte [ebp + 0x2c], bl
jle 0x43c18f
mov eax, dword [ebp + 0x14]
and eax, 0x1ff
mov dword [ebp + 0x48], eax
mov edi, dword [ebp + 0x14]
cdq
sub edi, eax
mov eax, dword [ebp + 0x18]
sbb eax, edx
mov esi, eax
js 0x43c1df
jg 0x43c1a4
cmp edi, ebx
jbe 0x43c1df
push ebx
push esi
push edi
push dword [ebp + 0x6c]
call fcn.0042572e
add esp, 0x10
cmp eax, edi
jne 0x43c1ba
cmp edx, esi
je 0x43c1df
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
lea ecx, [ebp + 4]
call fcn.00424686
lea ecx, [ebp + 0x6c]
call fcn.00402905
lea ecx, [ebp - 0x14]
call fcn.00424686
jmp 0x43c700
cmp byte [ebp + 0x62], bl
mov dword [ebp + 0x38], ebx
je 0x43c279
lea eax, [ebp + 4]
push eax
call fcn.00431670
pop ecx
push ebx
push ebx
push 3
push ebx
push 3
movsx edi, al
push 0x80000000
push dword [ebp + 4]
lea ecx, [ebp + 0x38]
mov dword [ebp - 0x18], edi
call fcn.00403993
cmp dword [ebp + 0x38], ebx
jne 0x43c224
lea ecx, [ebp + 0x38]
call fcn.00402905
jmp 0x43c028
cmp edi, ebx
mov edi, dword [ebp + 0x3c]
jle 0x43c237
mov eax, edi
and eax, 0x1ff
mov dword [ebp + 0x10], eax
jmp 0x43c23a
mov eax, dword [ebp + 0x10]
cdq
sub edi, eax
mov eax, dword [ebp + 0x40]
sbb eax, edx
cmp eax, ebx
mov esi, eax
jl 0x43c279
jg 0x43c24e
cmp edi, ebx
jbe 0x43c279
push ebx
push eax
push edi
push dword [ebp + 0x38]
call fcn.0042572e
add esp, 0x10
cmp eax, edi
jne 0x43c264
cmp edx, esi
je 0x43c279
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x38]
mov esi, eax
call fcn.00402905
jmp 0x43c1c2
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp]
cmp eax, ecx
je 0x43c285
add eax, ecx
lea edi, [eax + 0x8000]
lea eax, [edi + 0x102a00]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp + 0x18], edi
call fcn.00424576
mov esi, dword [ebp + 0x58]
add esi, 0x100000
and esi, 0xfff00000
lea eax, [esi + edi + 0x2800]
add edi, 0x2a00
push edi
push ebx
push esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0xc], eax
call fcn.00461780
mov eax, dword [ebp]
add esp, 0xc
xor edi, edi
cmp byte [ebp + 0x2c], bl
mov dword [ebp - 0x20], ebx
jle 0x43c2e1
add eax, 0x1ff
and eax, 0xfffffe00
cmp dword [ebp - 0x18], ebx
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x4c]
jle 0x43c2f6
add eax, 0x1ff
and eax, 0xfffffe00
cmp dword [ebp + 0x10], ebx
mov dword [ebp + 8], eax
mov byte [ebp + 0x7b], bl
jle 0x43c335
push ebx
lea eax, [ebp + 0x1c]
push eax
mov edi, 0x200
push edi
push esi
push dword [ebp + 0x38]
mov dword [ebp + 0x1c], ebx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
sub edi, dword [ebp + 0x10]
mov eax, edi
cdq
sub dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x10]
push edi
sbb dword [ebp + 0x68], edx
add eax, esi
push eax
push esi
call fcn.00461d90
add esp, 0xc
cmp dword [ebp + 0x48], ebx
jle 0x43c39f
push 1
push ebx
push ebx
push dword [ebp + 0x6c]
call fcn.0042572e
add esp, 0x10
push ebx
mov dword [ebp - 8], eax
lea eax, [ebp + 0x1c]
push eax
push 0x200
push dword [ebp + 0xc]
mov dword [ebp - 4], edx
push dword [ebp + 0x6c]
mov dword [ebp + 0x1c], ebx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, dword [ebp + 0x48]
push edi
add eax, esi
push esi
push eax
call fcn.00461d90
push dword [ebp + 0x48]
push dword [ebp + 0xc]
push esi
call fcn.00461d90
add edi, dword [ebp + 0x48]
push ebx
push dword [ebp - 4]
push dword [ebp - 8]
push dword [ebp + 0x6c]
call fcn.0042572e
add esp, 0x28
cmp byte [ebp + 0x47], bl
je 0x43c39f
mov byte [ebp + 0x7b], 1
cmp edi, ebx
mov byte [ebp + 0x60], 1
jg 0x43c46a
cmp dword [ebp + 0x68], ebx
jl 0x43c472
jg 0x43c3bf
cmp dword [ebp + 0x64], ebx
jbe 0x43c472
cmp byte [ebp + 0x60], bl
je 0x43c472
cmp byte [ebp + 0x62], bl
je 0x43c428
mov eax, dword [ebp + 8]
cdq
cmp edx, dword [ebp + 0x68]
jg 0x43c3e2
jl 0x43c3dd
cmp eax, dword [ebp + 0x64]
ja 0x43c3e2
mov eax, dword [ebp + 8]
jmp 0x43c3e5
mov eax, dword [ebp + 0x64]
lea ecx, [eax + edi]
cmp ecx, dword [ebp + 0x18]
jle 0x43c3f2
mov eax, dword [ebp + 0x18]
sub eax, edi
cmp dword [ebp - 0x18], ebx
jle 0x43c401
add eax, 0x1ff
and eax, 0xfffffe00
push ebx
lea ecx, [ebp + 0x1c]
push ecx
push eax
lea eax, [edi + esi]
push eax
push dword [ebp + 0x38]
mov dword [ebp + 0x1c], ebx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, dword [ebp + 0x1c]
cmp eax, ebx
jbe 0x43c472
cmp eax, dword [ebp + 0x64]
jbe 0x43c453
mov eax, dword [ebp + 0x64]
jmp 0x43c450
mov eax, dword [ebp + 0x34]
cdq
cmp edx, dword [ebp + 0x68]
jg 0x43c43d
jl 0x43c438
cmp eax, dword [ebp + 0x64]
ja 0x43c43d
mov eax, dword [ebp + 0x34]
jmp 0x43c440
mov eax, dword [ebp + 0x64]
lea ecx, [edi + eax]
cmp ecx, dword [ebp + 0x18]
mov dword [ebp + 0x1c], eax
jbe 0x43c453
mov eax, dword [ebp + 0x18]
sub eax, edi
mov dword [ebp + 0x1c], eax
cmp dword [ebp + 0x64], 0xffffffff
jne 0x43c462
cmp dword [ebp + 0x68], 0x7fffffff
je 0x43c468
sub dword [ebp + 0x64], eax
sbb dword [ebp + 0x68], ebx
add edi, eax
mov dword [ebp + 0x48], esi
jmp 0x43c684
cmp edi, ebx
jle 0x43c6b7
mov byte [ebp + 0x60], bl
mov dword [ebp + 0x48], esi
mov eax, dword [ebp + 0x34]
cmp eax, edi
jle 0x43c489
mov eax, edi
cmp byte [ebp + 0x2c], bl
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x4c], ebx
jle 0x43c49e
mov ecx, eax
and ecx, 0x1ff
jmp 0x43c4a0
xor ecx, ecx
sub eax, ecx
cmp eax, ebx
mov dword [ebp - 4], ecx
mov dword [ebp + 0x28], eax
jle 0x43c506
push ebx
lea eax, [ebp + 0x4c]
push eax
push dword [ebp + 0x28]
push dword [ebp + 0x48]
push dword [ebp + 0x6c]
call fcn.00428523
add esp, 0x14
test eax, eax
jne 0x43c62a
cmp byte [ebp + 0x63], bl
jne 0x43c5bb
call dword [sym.imp.KERNEL32.DLL_GetLastError]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, ebx
jne 0x43c4e6
xor eax, eax
inc eax
mov dword [ebp + 8], eax
lea ecx, [ebp + 0x58]
call fcn.00424686
lea ecx, [ebp + 0x38]
call fcn.00402905
lea ecx, [ebp + 4]
call fcn.00424686
jmp 0x43caa8
cmp ecx, ebx
jle 0x43c586
mov esi, 0x200
push esi
push ebx
push dword [ebp + 0xc]
call fcn.00461780
sub esi, dword [ebp - 4]
push 1
push ebx
push ebx
push dword [ebp + 0x6c]
call fcn.0042572e
add esp, 0x1c
push ebx
mov dword [ebp - 0x28], eax
lea eax, [ebp + 0x1c]
push eax
push 0x200
push dword [ebp + 0xc]
mov dword [ebp - 0x24], edx
push dword [ebp + 0x6c]
mov dword [ebp + 0x1c], ebx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
add eax, ecx
push esi
push eax
mov eax, dword [ebp + 0x48]
add eax, edi
push eax
call fcn.00461d90
push ebx
push dword [ebp - 0x24]
add edi, esi
push dword [ebp - 0x28]
mov dword [ebp + 0x10], 0x200
push dword [ebp + 0x6c]
call fcn.0042572e
mov esi, dword [ebp + 0x40]
add esp, 0x1c
cmp byte [ebp + 0x47], bl
je 0x43c586
mov byte [ebp + 0x7b], 1
cmp dword [ebp + 0x10], ebx
mov dword [ebp + 0x4c], ebx
jle 0x43c665
push ebx
lea eax, [ebp + 0x4c]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x48]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
jne 0x43c665
cmp byte [ebp + 0x63], bl
je 0x43c6b0
mov byte [ebp + 0x63], 2
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov al, byte [ebp + 0x63]
lea ecx, [ebp + 0x6c]
mov byte [ebp + 0x61], al
mov byte [ebp + 0x63], bl
mov dword [ebp + 0x4c], ebx
call fcn.00402905
push ebx
push ebx
push 4
push ebx
push ebx
push 0xc0000000
push dword [ebp + 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00403993
cmp dword [ebp + 0x6c], ebx
jne 0x43c606
push ebx
push ebx
push 3
push ebx
push ebx
push 0xc0000000
push dword [ebp + 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00403993
push ebx
lea eax, [ebp + 0x4c]
push eax
push dword [ebp + 0x28]
push dword [ebp + 0x48]
push dword [ebp + 0x6c]
call fcn.00428523
add esp, 0x14
test eax, eax
je 0x43c4d3
cmp byte [ebp + 0x61], 2
je 0x43c665
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x4c], eax
jbe 0x43c635
mov dword [ebp + 0x4c], eax
cmp byte [ebp + 0x7b], bl
je 0x43c64c
push dword [ebp + 0x4c]
push ebx
push dword [ebp + 0x48]
call fcn.00461780
add esp, 0xc
mov byte [ebp + 0x7b], bl
mov eax, dword [ebp + 0x4c]
sub dword [ebp + 0x10], eax
mov ecx, dword [ebp - 4]
sub edi, eax
mov eax, dword [ebp + 0x28]
add dword [ebp + 0x48], eax
mov byte [ebp + 0x63], bl
jmp 0x43c506
cmp byte [ebp + 0x7b], bl
je 0x43c67c
push dword [ebp + 0x4c]
push ebx
push dword [ebp + 0x48]
call fcn.00461780
add esp, 0xc
mov byte [ebp + 0x7b], bl
mov eax, dword [ebp + 0x4c]
add dword [ebp + 0x48], eax
sub edi, eax
cmp edi, dword [ebp]
jge 0x43c480
cmp edi, ebx
jle 0x43c3ab
cmp esi, dword [ebp + 0x48]
je 0x43c3ab
push edi
push dword [ebp + 0x48]
push esi
call fcn.00461d90
add esp, 0xc
jmp 0x43c3ab
mov dword [ebp - 0x20], 1
cmp dword [ebp - 0x20], ebx
jne 0x43c4d9
cmp dword [ebp + 0x68], ebx
jl 0x43c6e3
jg 0x43c6cc
cmp dword [ebp + 0x64], ebx
jbe 0x43c6e3
cmp dword [ebp + 0x64], 0xffffffff
jne 0x43c4d9
cmp dword [ebp + 0x68], 0x7fffffff
jne 0x43c4d9
mov dword [ebp + 8], ebx
jmp 0x43c4e9
lea ecx, [ebp + 0x6c]
call fcn.00402905
lea ecx, [ebp - 0x14]
call fcn.00424686
mov esi, 0x80070057
lea ecx, [ebp + 0x20]
call fcn.00424686
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
xor edi, edi
cmp byte [ebp + 0x2c], 0x11
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x68], ebx
mov dword [ebp - 0x24], ebx
jne 0x43c763
lea eax, [ebp + 0x64]
push eax
push dword [ebp + 0x58]
push dword [ebp + 0x6c]
call fcn.004282e8
add esp, 0xc
cmp edx, ebx
mov edi, eax
mov dword [ebp - 0x24], edx
jg 0x43c7ce
jl 0x43c74e
cmp edi, ebx
jae 0x43c7ce
lea ecx, [ebp + 0x6c]
call fcn.00402905
lea ecx, [ebp - 0x14]
call fcn.00424686
jmp 0x43bc61
cmp dword [ebp + 0x6c], ebx
je 0x43c7d3
cmp byte [ebp + 0x2c], bl
jne 0x43c7a6
push 2
push ebx
push ebx
push dword [ebp + 0x6c]
call fcn.0042572e
mov ecx, dword [ebp + 0x14]
add esp, 0x10
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x18]
sub ecx, 0x400
sbb eax, ebx
cmp edx, eax
mov dword [ebp + 0x68], edx
jg 0x43c7ce
jl 0x43c79b
cmp dword [ebp + 0x64], ecx
jae 0x43c7ce
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x43c7ce
push dword [ebp + 0x2c]
push dword [ebp + 0x6c]
call fcn.00428276
cmp edx, ebx
pop ecx
pop ecx
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x68], edx
jg 0x43c7ce
jl 0x43c7c3
cmp eax, ebx
jae 0x43c7ce
or dword [ebp + 0x64], 0xffffffff
mov dword [ebp + 0x68], 0x7fffffff
cmp dword [ebp + 0x6c], ebx
jne 0x43c812
cmp byte [ebp + 0x2c], bl
jne 0x43c800
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x20]
call fcn.00431202
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp + 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00403993
mov byte [ebp + 0x60], 1
cmp dword [ebp + 0x6c], ebx
jne 0x43c812
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x43c1ca
cmp byte [ebp + 0x60], bl
je 0x43c827
cmp byte [ebp + 0x2c], bl
jne 0x43c827
or dword [ebp + 0x64], 0xffffffff
mov dword [ebp + 0x68], 0x7fffffff
xor eax, eax
cmp byte [ebp + 0x2c], bl
mov dword [ebp + 0x28], eax
je 0x43c83c
mov eax, dword [ebp + 0x14]
and eax, 0x1ff
mov dword [ebp + 0x28], eax
add dword [ebp + 0x14], edi
mov ecx, dword [ebp - 0x24]
movzx eax, ax
adc dword [ebp + 0x18], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0x58], eax
cdq
sub ecx, eax
mov eax, dword [ebp + 0x18]
push ebx
sbb eax, edx
push eax
push ecx
push dword [ebp + 0x6c]
call fcn.0042572e
mov edi, dword [ebp + 0x64]
mov esi, dword [ebp + 0x68]
add esp, 0x10
sub edi, dword [ebp + 0x14]
mov dword [ebp + 0xc], ebx
sbb esi, dword [ebp + 0x18]
cmp edx, ebx
mov dword [ebp + 0x3c], edi
jg 0x43c895
jl 0x43c880
cmp eax, ebx
jae 0x43c895
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0xc]
mov esi, eax
call fcn.00424686
jmp 0x43c1ca
cmp byte [ebp + 0x62], bl
je 0x43c8d5
mov eax, dword [ebp - 0x18]
cdq
cmp dword [ebp + 0x68], edx
jl 0x43c8b0
jg 0x43c8aa
cmp dword [ebp + 0x64], eax
jbe 0x43c8b0
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x68], edx
cmp dword [ebp + 0x68], ebx
jl 0x43ca97
jg 0x43c8c4
cmp dword [ebp + 0x64], ebx
jbe 0x43ca97
push dword [ebp + 0x2c]
push dword [ebp + 0x58]
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push dword [ebp + 0x38]
jmp 0x43c93c
cmp dword [ebp + 0x34], ebx
jl 0x43c8f6
jg 0x43c8e1
cmp dword [ebp + 0x30], ebx
jb 0x43c8f6
cmp dword [ebp + 0x34], esi
jg 0x43c8f6
jl 0x43c8ed
cmp dword [ebp + 0x30], edi
jae 0x43c8f6
mov edi, dword [ebp + 0x30]
mov esi, dword [ebp + 0x34]
mov dword [ebp + 0x3c], edi
cmp byte [ebp + 0x61], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x78], eax
je 0x43c94c
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0xc]
call fcn.00409a52
push dword [ebp + 0xc]
call fcn.004617f0
pop ecx
mov ecx, eax
cdq
cmp edx, esi
jl 0x43c926
jg 0x43c924
cmp eax, edi
jbe 0x43c926
mov ecx, edi
cmp ecx, ebx
jle 0x43ca97
push dword [ebp + 0x2c]
mov eax, ecx
push dword [ebp + 0x58]
cdq
push edx
push eax
push dword [ebp + 0xc]
push dword [ebp + 0x6c]
call fcn.004283b4
add esp, 0x18
jmp 0x43ca97
movzx ecx, word [ebp + 0x28]
lea edi, [ebp - 0x228]
mov eax, 0x200
sub eax, ecx
and edi, 0xfffffe00
cmp esi, ebx
mov dword [ebp - 0x18], eax
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x58], ebx
mov byte [ebp + 0x61], bl
jl 0x43ca97
jle 0x43ca8e
cmp dword [ebp + 0x68], ebx
jg 0x43c998
jl 0x43c98c
cmp dword [ebp + 0x64], ebx
ja 0x43c998
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x43ca97
cmp dword [ebp - 0x18], ebx
mov dword [ebp - 4], ebx
jle 0x43ca97
cmp esi, ebx
jl 0x43ca5b
jg 0x43c9b7
cmp dword [ebp + 0x3c], ebx
jbe 0x43ca5b
cmp dword [ebp + 0x68], ebx
jg 0x43ca36
jl 0x43c9c3
cmp dword [ebp + 0x64], ebx
ja 0x43ca36
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x43ca5b
lea ecx, [ebp + 0x78]
call fcn.00429ef2
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
mov dword [ebp - 0x20], eax
jne 0x43ca0c
inc eax
inc eax
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x64]
push eax
mov eax, ecx
push eax
call fcn.0042f308
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x43ca0c
cmp cx, 0x30
jb 0x43ca07
cmp cx, 0x39
jbe 0x43ca14
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov cx, word [eax]
cmp cx, bx
jne 0x43c9fb
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042e410
cmp eax, 1
pop ecx
pop ecx
jl 0x43ca5b
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp - 0x20]
je 0x43ca5b
mov al, byte [ebp + 0x58]
mov byte [ebp + 0x61], al
add dword [ebp + 0x64], 0xffffffff
mov eax, dword [ebp - 4]
mov cl, byte [ebp + 0x61]
adc dword [ebp + 0x68], 0xffffffff
mov byte [eax + edi], cl
inc eax
add dword [ebp + 0x3c], 0xffffffff
mov dword [ebp - 4], eax
adc esi, 0xffffffff
cmp eax, dword [ebp - 0x18]
jl 0x43c9a4
cmp dword [ebp - 4], ebx
jle 0x43ca97
push dword [ebp + 0x2c]
movzx eax, word [ebp + 0x28]
push eax
mov eax, dword [ebp - 4]
cdq
push edx
push eax
push edi
push dword [ebp + 0x6c]
call fcn.004283b4
add esp, 0x18
cmp esi, ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp - 0x18], 0x200
jg 0x43c980
jl 0x43ca97
cmp dword [ebp + 0x3c], ebx
ja 0x43c980
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
lea ecx, [ebp + 0xc]
call fcn.00424686
cmp byte [ebp + 0x5f], bl
je 0x43cab6
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_SetEndOfFile]
lea ecx, [ebp + 0x6c]
call fcn.00402905
lea ecx, [ebp - 0x14]
call fcn.00424686
mov esi, dword [ebp + 8]
jmp 0x43c700