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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x28c
mov edx, dword [ebp + 0x78]
push ebx
xor ebx, ebx
push esi
mov dword [ebp - 0x14], ecx
push edi
mov byte [ebp + 0x3b], bl
mov byte [ebp + 0x6a], bl
mov byte [ebp + 0x23], bl
xor ecx, ecx
jmp 0x44c8bc
mov eax, ecx
call fcn.00426083
test al, al
jne 0x44c8c4
cmp cx, 0x2a
jne 0x44c89f
mov al, byte [edx]
mov byte [ebp + 0x3b], al
jmp 0x44c8b7
cmp cx, 0x2e
jne 0x44c8ac
mov al, byte [edx]
mov byte [ebp + 0x6a], al
jmp 0x44c8b7
cmp cx, 0x23
jne 0x44c8b7
mov al, byte [edx]
mov byte [ebp + 0x23], al
inc edx
inc edx
mov dword [ebp + 0x78], edx
mov cx, word [edx]
cmp cx, bx
jne 0x44c887
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
pop ecx
push 1
lea ecx, [ebp + 0x44]
call fcn.0042aed6
mov eax, 0x200
mov dword [ebp + 0x4c], eax
mov dword [ebp + 8], eax
push 3
lea eax, [ebp + 0x78]
or esi, 0xffffffff
push eax
push 0x481794
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x28], 0x7fffffff
xor edi, edi
mov dword [ebp - 0xc], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x64], esi
mov dword [ebp + 0x40], ebx
mov byte [ebp + 0x6b], bl
mov byte [ebp + 0x51], bl
mov byte [ebp + 0x52], bl
mov byte [ebp + 0x50], bl
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x44cc01
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x52], 1
jne 0x44cc01
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x44cbe0
mov eax, ecx
call fcn.00426083
test al, al
jne 0x44cbe0
cmp cx, 0x2c
je 0x44cbe0
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44c9b2
add dword [ebp + 0x78], 8
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
call fcn.0042f2aa
test eax, eax
pop ecx
pop ecx
jle 0x44cbc9
mov eax, dword [ebp + 0x58]
mov dword [ebp + 8], eax
mov dword [ebp + 0x4c], eax
jmp 0x44cbc9
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44c9ee
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
call fcn.0042f2aa
test eax, eax
pop ecx
pop ecx
jle 0x44cbc9
mov eax, dword [ebp + 0x58]
jmp 0x44c9aa
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44ca30
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
call fcn.0042f2aa
test eax, eax
pop ecx
pop ecx
jle 0x44cbc9
mov eax, dword [ebp + 0x58]
mov dword [ebp + 8], eax
jmp 0x44cbc9
push 7
push dword [ebp + 0x78]
push str._count
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44ca78
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
call fcn.0042f2aa
test eax, eax
pop ecx
pop ecx
jle 0x44cbc9
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x28], eax
jmp 0x44cbc9
push 5
push dword [ebp + 0x78]
push str._len
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44cac0
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
call fcn.0042f2aa
test eax, eax
pop ecx
pop ecx
jle 0x44cbc9
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x64], eax
jmp 0x44cbc9
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44cb03
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44caf4
mov byte [ebp + 0x51], 1
lea eax, [ebp + 0x78]
push eax
call fcn.00403adb
pop ecx
jmp 0x44cbc9
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44cb4b
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
call fcn.0042f2aa
test eax, eax
pop ecx
pop ecx
jle 0x44cbc9
mov eax, dword [ebp + 0x5c]
mov edi, dword [ebp + 0x58]
mov dword [ebp - 0xc], eax
jmp 0x44cbc9
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44cb91
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
xor edi, edi
mov dword [ebp - 0xc], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
call fcn.0042f2aa
test eax, eax
pop ecx
pop ecx
jle 0x44cbc9
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x1c], eax
jmp 0x44cbc9
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x44cbae
mov byte [ebp + 0x50], 1
jmp 0x44cbc9
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x44cbc9
mov byte [ebp + 0x50], 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
pop ecx
je 0x44c942
cmp dword [ebp + 0x1c], ebx
jg 0x44cc01
jl 0x44cbec
cmp dword [ebp + 0x18], ebx
jae 0x44cc01
push dword [ebp - 0xc]
mov eax, dword [ebp + 0x4c]
cdq
push edi
push edx
push eax
call fcn.00467ab0
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x44cc1c
mov byte [ebp + 0x50], 1
push 0x2c
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042d669
mov eax, dword [ebp + 0x44]
push eax
mov dword [ebp - 0xc], eax
mov dword [ebp + 0x44], ebx
call fcn.0040ca55
add esp, 0x10
push eax
lea ecx, [ebp + 0x44]
call fcn.004346c9
lea ecx, [ebp - 0xc]
call fcn.0042602e
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2c
jne 0x44d62b
mov eax, dword [ebp + 0x44]
cmp word [eax], bx
je 0x44d62b
push 2
pop edi
add dword [ebp + 0x78], edi
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f2aa
cmp dword [ebp + 0x34], ebx
pop ecx
pop ecx
jg 0x44cc90
jl 0x44d62b
cmp dword [ebp + 0x30], ebx
jb 0x44d62b
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x23
mov dword [ebp + 0x58], 0xfffffffc
mov dword [ebp + 0x5c], esi
jne 0x44ccb5
add dword [ebp + 0x78], edi
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f2aa
pop ecx
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x44ccc0
add dword [ebp + 0x78], edi
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
mov esi, dword [ebp + 0x78]
push esi
call fcn.0040aed8
push esi
push 0x48173c
call fcn.00426fa9
add esp, 0x10
cmp word [esi], bx
mov byte [ebp + 0x53], al
mov dword [ebp + 0x48], esi
jne 0x44ccf3
xor ebx, ebx
inc ebx
jmp 0x44d630
lea ecx, [ebp - 8]
call fcn.0042adba
cmp byte [ebp + 0x23], bl
mov dword [ebp - 4], ebx
mov dword [ebp], ebx
mov byte [ebp + 0x3a], bl
je 0x44cdbb
mov esi, 0x49062c
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.0042aeb8
mov ecx, dword [ebp - 0x14]
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x78]
call fcn.0040ac3f
mov edi, eax
cmp edi, ebx
jne 0x44cd49
lea ecx, [ebp + 0x40]
call fcn.0042602e
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44d623
mov ecx, dword [edi + 0xc]
and ecx, 0x3fffffff
cmp dword [ebp + 0x5c], ebx
jl 0x44cd6d
jg 0x44cd5e
cmp dword [ebp + 0x58], ebx
jbe 0x44cd6d
mov eax, ecx
cdq
cmp dword [ebp + 0x5c], edx
jl 0x44cd76
jg 0x44cd6d
cmp dword [ebp + 0x58], eax
jbe 0x44cd76
mov eax, ecx
cdq
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
push dword [ebp + 0x58]
lea ecx, [ebp - 8]
call fcn.0042adfe
mov eax, dword [ebp + 0x58]
push eax
mov dword [ebp - 4], eax
push dword [edi + 4]
push dword [ebp - 8]
call fcn.004669c0
mov eax, dword [ebp - 8]
add esp, 0xc
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x48], eax
mov byte [ebp + 0x3a], 1
mov byte [ebp + 0x6b], 1
call fcn.0042602e
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x78]
jmp 0x44ce73
cmp word [esi], 0x23
jne 0x44ce73
lea ecx, [esi + 2]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.0042aa31
add esp, 4
test al, al
jne 0x44cdf7
cmp dx, 0x2e
jne 0x44ce73
xor eax, eax
mov ax, word [esi + 4]
push eax
call fcn.0042aa31
add esp, 4
test al, al
je 0x44ce73
mov al, byte [esi]
mov byte [ebp + 0x6b], al
mov byte [ebp + 0x3a], al
mov eax, ecx
mov dword [ebp - 0x14], 0x20
cmp word [eax], 0x2e
mov dword [ebp + 0x48], eax
jne 0x44ce1e
mov cl, byte [eax]
add eax, edi
mov byte [ebp + 0x6b], cl
mov dword [ebp + 0x48], eax
mov dword [ebp - 0x14], edi
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.00431de7
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp + 0x40]
push dword [0x48fde8]
call fcn.0040f8b6
add esp, 0x1c
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x48], eax
jl 0x44ce6a
jg 0x44ce54
cmp dword [ebp + 0x58], ebx
jbe 0x44ce6a
mov eax, dword [ebp - 4]
cdq
cmp dword [ebp + 0x5c], edx
jg 0x44ce6a
jl 0x44ce64
cmp dword [ebp + 0x58], eax
jae 0x44ce6a
mov eax, dword [ebp + 0x58]
mov dword [ebp - 4], eax
cmp dword [ebp + 0x48], ebx
je 0x44d6a2
cmp byte [ebp + 0x52], bl
mov dword [ebp + 0x78], ebx
je 0x44d60d
cmp byte [ebp + 0x3a], bl
jne 0x44d60d
cmp dword [ebp + 0x4c], ebx
jle 0x44d623
cmp dword [ebp + 8], ebx
jle 0x44d623
cmp dword [ebp + 0x64], ebx
jl 0x44ceca
jg 0x44cea6
cmp dword [ebp + 0x60], ebx
jb 0x44ceca
mov eax, dword [ebp + 0x4c]
cdq
mov ecx, eax
add ecx, dword [ebp + 0x60]
mov edi, edx
adc edi, dword [ebp + 0x64]
push edx
sub ecx, 1
push eax
sbb edi, ebx
push edi
push ecx
call fcn.00467640
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], edx
jmp 0x44cefa
cmp dword [ebp + 0x24], 0xffffffff
jne 0x44cee3
mov eax, 0x7fffffff
cmp dword [ebp + 0x28], eax
jne 0x44cee3
or dword [ebp + 0x60], 0xffffffff
mov dword [ebp + 0x64], eax
jmp 0x44cefa
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x4c]
push dword [ebp + 0x24]
cdq
push edx
push eax
call fcn.00467ab0
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
lea eax, [ebp + 0x44]
push eax
call fcn.00431953
push esi
mov byte [ebp + 0x6b], al
call fcn.0040ca55
pop ecx
pop ecx
push eax
lea ecx, [ebp + 0x48]
call fcn.00434695
cmp byte [ebp + 0x51], bl
mov dword [ebp + 0x6c], ebx
mov byte [ebp + 0x7b], 1
jne 0x44cf2c
cmp byte [ebp + 0x6b], bl
mov byte [ebp + 0x52], 1
jle 0x44cf2f
mov byte [ebp + 0x52], bl
push ebx
push ebx
push 4
push ebx
push 3
mov esi, 0xc0000000
push esi
push dword [ebp + 0x44]
lea ecx, [ebp + 0x6c]
call fcn.00403b3c
cmp dword [ebp + 0x6c], ebx
jne 0x44cf79
push ebx
push ebx
push 3
push ebx
push 3
push esi
push dword [ebp + 0x44]
lea ecx, [ebp + 0x6c]
call fcn.00403b3c
cmp dword [ebp + 0x6c], ebx
jne 0x44cf79
lea ecx, [ebp + 0x6c]
call fcn.004029f8
lea ecx, [ebp + 0x48]
call fcn.0042602e
jmp 0x44d6a2
cmp byte [ebp + 0x50], bl
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x40], ebx
je 0x44d06c
cmp byte [ebp + 0x6b], bl
jg 0x44d06c
lea ecx, [ebp + 0x6c]
call fcn.004029f8
cmp byte [ebp + 0x50], 1
jne 0x44cfaf
push ebx
push ebx
push dword [ebp + 0x44]
call fcn.00431404
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp + 0x44]
lea ecx, [ebp + 0x6c]
call fcn.00403b3c
cmp dword [ebp + 0x6c], ebx
je 0x44cf64
cmp byte [ebp + 0x53], bl
je 0x44d06c
cmp dword [ebp + 0x28], ebx
jl 0x44d426
jg 0x44cfe8
cmp dword [ebp + 0x24], ebx
jbe 0x44d426
push dword [ebp + 0x28]
mov eax, dword [ebp + 8]
push dword [ebp + 0x24]
cdq
push edx
push eax
call fcn.00467ab0
mov esi, eax
add esi, dword [ebp + 0x30]
mov edi, edx
adc edi, dword [ebp + 0x34]
cmp dword [ebp + 0x28], 0x7fffffff
jl 0x44d01e
jg 0x44d014
cmp dword [ebp + 0x24], 0xffffffff
jb 0x44d01e
mov esi, 0xfffffdff
mov edi, 0x7fffffff
push ebx
push edi
push esi
push dword [ebp + 0x6c]
call fcn.00426f04
add esp, 0x10
cmp eax, esi
jne 0x44d04d
cmp edx, edi
jne 0x44d04d
cmp dword [ebp + 0x28], 0x7fffffff
jl 0x44d426
jg 0x44d04d
cmp dword [ebp + 0x24], 0xffffffff
jb 0x44d426
cmp dword [ebp + 0x28], 0x7fffffff
jg 0x44d06c
jl 0x44d05e
cmp dword [ebp + 0x24], 0xffffffff
jae 0x44d06c
push ebx
push ebx
push ebx
push dword [ebp + 0x6c]
call fcn.00426f04
add esp, 0x10
cmp dword [ebp + 0x28], ebx
jl 0x44d426
jg 0x44d080
cmp dword [ebp + 0x24], ebx
jbe 0x44d426
cmp dword [ebp + 0x64], ebx
jl 0x44d426
jg 0x44d094
cmp dword [ebp + 0x60], ebx
jbe 0x44d426
mov ecx, dword [ebp + 0x30]
xor edi, edi
cmp byte [ebp + 0x53], bl
mov dword [ebp + 0x40], ebx
sete byte [ebp + 0x53]
cmp byte [ebp + 0x6b], bl
mov dword [ebp + 0x54], ebx
jle 0x44d0b5
mov eax, ecx
and eax, 0x1ff
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x54]
cdq
sub ecx, eax
mov eax, dword [ebp + 0x34]
sbb eax, edx
mov esi, ecx
mov dword [ebp - 0x18], eax
js 0x44d10b
jg 0x44d0cd
cmp esi, ebx
jbe 0x44d10b
push ebx
push dword [ebp - 0x18]
push esi
push dword [ebp + 0x6c]
call fcn.00426f04
add esp, 0x10
cmp eax, esi
jne 0x44d0e6
cmp edx, dword [ebp - 0x18]
je 0x44d10b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp + 0x6c]
call fcn.004029f8
lea ecx, [ebp + 0x48]
call fcn.0042602e
lea ecx, [ebp - 8]
call fcn.0042602e
jmp 0x44d630
cmp byte [ebp + 0x53], bl
mov dword [ebp + 4], ebx
je 0x44d1a4
lea eax, [ebp + 0x48]
push eax
call fcn.00431953
pop ecx
push ebx
push ebx
push 3
push ebx
push 3
movsx esi, al
push 0x80000000
push dword [ebp + 0x48]
lea ecx, [ebp + 4]
mov dword [ebp + 0x40], esi
call fcn.00403b3c
cmp dword [ebp + 4], ebx
jne 0x44d150
lea ecx, [ebp + 4]
call fcn.004029f8
jmp 0x44cf64
cmp esi, ebx
mov ecx, dword [ebp + 0x18]
jle 0x44d15f
mov edi, ecx
and edi, 0x1ff
mov eax, edi
cdq
sub ecx, eax
mov eax, dword [ebp + 0x1c]
sbb eax, edx
cmp eax, ebx
mov esi, ecx
mov dword [ebp - 0x18], eax
jl 0x44d1a4
jg 0x44d178
cmp ecx, ebx
jbe 0x44d1a4
push ebx
push eax
push ecx
push dword [ebp + 4]
call fcn.00426f04
add esp, 0x10
cmp eax, esi
jne 0x44d18f
cmp edx, dword [ebp - 0x18]
je 0x44d1a4
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 4]
mov ebx, eax
call fcn.004029f8
jmp 0x44d0ee
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 8]
cmp eax, ecx
je 0x44d1b0
add eax, ecx
lea esi, [eax + 0x8000]
lea eax, [esi + 0x2800]
push eax
lea ecx, [ebp + 0x14]
mov dword [ebp + 0xc], esi
call fcn.0042add7
push esi
push ebx
push dword [ebp + 0x14]
call fcn.00466780
mov eax, dword [ebp + 8]
add esp, 0xc
xor esi, esi
cmp byte [ebp + 0x6b], bl
mov dword [ebp - 0xc], ebx
jle 0x44d1ec
add eax, 0x1ff
and eax, 0xfffffe00
cmp dword [ebp + 0x40], ebx
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x4c]
jle 0x44d201
add eax, 0x1ff
and eax, 0xfffffe00
cmp edi, ebx
mov dword [ebp + 0x28], eax
jle 0x44d23e
push ebx
lea eax, [ebp + 0x2c]
push eax
mov esi, 0x200
push esi
push dword [ebp + 0x14]
mov dword [ebp + 0x2c], ebx
push dword [ebp + 4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub esi, edi
mov eax, esi
cdq
sub dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x14]
push esi
sbb dword [ebp + 0x64], edx
lea ecx, [eax + edi]
push ecx
push eax
call fcn.00466d00
add esp, 0xc
cmp dword [ebp + 0x54], ebx
jle 0x44d2c0
push 0x7f
pop ecx
mov byte [ebp - 0x21c], bl
xor eax, eax
lea edi, [ebp - 0x21b]
rep stosd dword es:[edi], eax
push 1
push ebx
stosw word es:[edi], ax
push ebx
push dword [ebp + 0x6c]
stosb byte es:[edi], al
call fcn.00426f04
add esp, 0x10
push ebx
mov dword [ebp + 0x58], eax
lea eax, [ebp + 0x2c]
push eax
push 0x200
lea eax, [ebp - 0x21c]
push eax
push dword [ebp + 0x6c]
mov dword [ebp + 0x5c], edx
mov dword [ebp + 0x2c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x54]
push esi
add eax, edi
push edi
push eax
call fcn.00466d00
push dword [ebp + 0x54]
lea eax, [ebp - 0x21c]
push eax
push edi
call fcn.00466d00
add esi, dword [ebp + 0x54]
push ebx
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
push dword [ebp + 0x6c]
call fcn.00426f04
add esp, 0x28
cmp esi, ebx
jg 0x44d38d
mov byte [ebp + 0x51], 1
cmp dword [ebp + 0x64], ebx
jl 0x44d398
jg 0x44d2e0
cmp dword [ebp + 0x60], ebx
jbe 0x44d398
cmp byte [ebp + 0x51], bl
je 0x44d398
cmp byte [ebp + 0x53], bl
je 0x44d34b
mov eax, dword [ebp + 0x28]
cdq
cmp edx, dword [ebp + 0x64]
jg 0x44d303
jl 0x44d2fe
cmp eax, dword [ebp + 0x60]
ja 0x44d303
mov eax, dword [ebp + 0x28]
jmp 0x44d306
mov eax, dword [ebp + 0x60]
lea ecx, [eax + esi]
cmp ecx, dword [ebp + 0xc]
jle 0x44d313
mov eax, dword [ebp + 0xc]
sub eax, esi
cmp dword [ebp + 0x40], ebx
jle 0x44d322
add eax, 0x1ff
and eax, 0xfffffe00
push ebx
lea ecx, [ebp + 0x2c]
push ecx
push eax
mov eax, dword [ebp + 0x14]
add eax, esi
push eax
push dword [ebp + 4]
mov dword [ebp + 0x2c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0x2c]
cmp eax, ebx
jbe 0x44d398
cmp eax, dword [ebp + 0x60]
jbe 0x44d376
mov eax, dword [ebp + 0x60]
jmp 0x44d373
mov eax, dword [ebp + 0x1c]
cdq
cmp edx, dword [ebp + 0x64]
jg 0x44d360
jl 0x44d35b
cmp eax, dword [ebp + 0x60]
ja 0x44d360
mov eax, dword [ebp + 0x1c]
jmp 0x44d363
mov eax, dword [ebp + 0x60]
lea ecx, [esi + eax]
cmp ecx, dword [ebp + 0xc]
mov dword [ebp + 0x2c], eax
jbe 0x44d376
mov eax, dword [ebp + 0xc]
sub eax, esi
mov dword [ebp + 0x2c], eax
cmp dword [ebp + 0x60], 0xffffffff
jne 0x44d385
cmp dword [ebp + 0x64], 0x7fffffff
je 0x44d38b
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
add esi, eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x4c], eax
jmp 0x44d5a3
cmp esi, ebx
jle 0x44d5d9
mov eax, dword [ebp + 0x14]
mov byte [ebp + 0x51], bl
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x1c]
cmp eax, esi
mov dword [ebp + 0x10], eax
jle 0x44d3b6
mov dword [ebp + 0x10], esi
cmp byte [ebp + 0x6b], bl
mov dword [ebp + 0x54], ebx
jle 0x44d3cb
mov eax, dword [ebp + 0x10]
and eax, 0x1ff
mov dword [ebp + 0x34], eax
jmp 0x44d3ce
mov dword [ebp + 0x34], ebx
mov edi, dword [ebp + 0x10]
sub edi, dword [ebp + 0x34]
cmp edi, ebx
mov dword [ebp + 0x5c], edi
jle 0x44d454
push ebx
lea eax, [ebp + 0x54]
push eax
push edi
push dword [ebp + 0x4c]
push dword [ebp + 0x6c]
call fcn.00429449
add esp, 0x14
test eax, eax
jne 0x44d580
cmp byte [ebp + 0x7b], bl
jne 0x44d513
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x44d413
xor eax, eax
inc eax
mov dword [ebp + 0x40], eax
lea ecx, [ebp + 0x14]
call fcn.0042602e
lea ecx, [ebp + 4]
call fcn.004029f8
cmp byte [ebp + 0x52], bl
je 0x44d434
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea ecx, [ebp + 0x6c]
call fcn.004029f8
lea ecx, [ebp + 0x48]
call fcn.0042602e
lea ecx, [ebp - 8]
call fcn.0042602e
mov ebx, dword [ebp + 0x40]
jmp 0x44d630
cmp dword [ebp + 0x34], ebx
jle 0x44d4de
push 0x7f
pop ecx
mov byte [ebp - 0x21c], bl
xor eax, eax
lea edi, [ebp - 0x21b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 1
push ebx
stosb byte es:[edi], al
push ebx
push dword [ebp + 0x6c]
mov edi, 0x200
sub edi, dword [ebp + 0x34]
call fcn.00426f04
add esp, 0x10
push ebx
mov dword [ebp - 0x1c], eax
lea eax, [ebp + 0x2c]
push eax
push 0x200
lea eax, [ebp - 0x21c]
push eax
push dword [ebp + 0x6c]
mov dword [ebp - 0x18], edx
mov dword [ebp + 0x2c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0x34]
lea eax, [ebp + eax - 0x21c]
push edi
push eax
mov eax, dword [ebp + 0x4c]
add eax, esi
push eax
call fcn.00466d00
add dword [ebp + 0x10], edi
push ebx
push dword [ebp - 0x18]
add esi, edi
push dword [ebp - 0x1c]
push dword [ebp + 0x6c]
call fcn.00426f04
mov edi, dword [ebp + 0x5c]
add esp, 0x1c
cmp dword [ebp + 0x10], ebx
mov dword [ebp + 0x54], ebx
jle 0x44d59b
push ebx
lea eax, [ebp + 0x54]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x4c]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x44d59b
cmp byte [ebp + 0x7b], bl
je 0x44d5d2
mov byte [ebp + 0x7b], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov al, byte [ebp + 0x7b]
lea ecx, [ebp + 0x6c]
mov byte [ebp + 0x6a], al
mov byte [ebp + 0x7b], bl
mov dword [ebp + 0x54], ebx
call fcn.004029f8
push ebx
push ebx
push 4
push ebx
push ebx
push 0xc0000000
push dword [ebp + 0x44]
lea ecx, [ebp + 0x6c]
call fcn.00403b3c
cmp dword [ebp + 0x6c], ebx
jne 0x44d55e
push ebx
push ebx
push 3
push ebx
push ebx
push 0xc0000000
push dword [ebp + 0x44]
lea ecx, [ebp + 0x6c]
call fcn.00403b3c
push ebx
lea eax, [ebp + 0x54]
push eax
push edi
push dword [ebp + 0x4c]
push dword [ebp + 0x6c]
call fcn.00429449
add esp, 0x14
test eax, eax
je 0x44d400
cmp byte [ebp + 0x6a], 2
je 0x44d59b
cmp dword [ebp + 0x54], edi
jbe 0x44d588
mov dword [ebp + 0x54], edi
mov eax, dword [ebp + 0x54]
sub dword [ebp + 0x10], eax
sub esi, eax
add dword [ebp + 0x4c], edi
mov byte [ebp + 0x7b], bl
jmp 0x44d454
mov eax, dword [ebp + 0x54]
add dword [ebp + 0x4c], eax
sub esi, eax
cmp esi, dword [ebp + 8]
jge 0x44d3a9
cmp esi, ebx
jle 0x44d2cc
mov eax, dword [ebp + 0x4c]
cmp dword [ebp + 0x14], eax
je 0x44d2cc
push esi
push eax
push dword [ebp + 0x14]
call fcn.00466d00
add esp, 0xc
jmp 0x44d2cc
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], ebx
jne 0x44d406
cmp dword [ebp + 0x64], ebx
jl 0x44d605
jg 0x44d5ee
cmp dword [ebp + 0x60], ebx
jbe 0x44d605
cmp dword [ebp + 0x60], 0xffffffff
jne 0x44d406
cmp dword [ebp + 0x64], 0x7fffffff
jne 0x44d406
mov dword [ebp + 0x40], ebx
jmp 0x44d416
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x44]
push eax
call fcn.00431816
cmp al, bl
pop ecx
pop ecx
mov byte [ebp + 0x54], al
jge 0x44d644
lea ecx, [ebp - 8]
call fcn.0042602e
mov ebx, 0x80070057
lea ecx, [ebp + 0x44]
call fcn.0042602e
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x70
leave
ret 8
push ebx
push ebx
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp + 0x44]
lea ecx, [ebp + 0x6c]
mov dword [ebp + 0x6c], ebx
call fcn.00403b3c
xor edi, edi
xor esi, esi
cmp byte [ebp + 0x54], 0x11
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], esi
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
jne 0x44d6af
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0x78]
push dword [ebp + 0x6c]
call fcn.00431742
add esp, 0xc
cmp edx, ebx
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
jg 0x44d714
jl 0x44d69a
cmp eax, ebx
jae 0x44d714
lea ecx, [ebp + 0x6c]
call fcn.004029f8
lea ecx, [ebp - 8]
call fcn.0042602e
jmp 0x44cceb
cmp dword [ebp + 0x6c], ebx
je 0x44d71f
cmp byte [ebp + 0x54], bl
jne 0x44d6ef
push 2
push ebx
push ebx
push dword [ebp + 0x6c]
call fcn.00426f04
mov ecx, dword [ebp + 0x30]
add esp, 0x10
mov edi, eax
mov eax, dword [ebp + 0x34]
sub ecx, 0x400
mov esi, edx
sbb eax, ebx
cmp esi, eax
jg 0x44d71a
jl 0x44d6e4
cmp edi, ecx
jae 0x44d71a
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x44d71a
push dword [ebp + 0x54]
push dword [ebp + 0x6c]
call fcn.00429288
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x44d71a
jl 0x44d70a
cmp edi, ebx
jae 0x44d71a
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x44d71a
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
cmp dword [ebp + 0x6c], ebx
jne 0x44d762
cmp byte [ebp + 0x54], bl
jne 0x44d750
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x44]
call fcn.00431404
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp + 0x44]
lea ecx, [ebp + 0x6c]
call fcn.00403b3c
mov byte [ebp + 0x3b], 1
cmp dword [ebp + 0x6c], ebx
jne 0x44d762
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x44d9d5
cmp byte [ebp + 0x3b], bl
je 0x44d774
cmp byte [ebp + 0x54], bl
jne 0x44d774
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp byte [ebp + 0x54], bl
mov dword [ebp + 0x1c], ebx
je 0x44d787
mov eax, dword [ebp + 0x30]
and eax, 0x1ff
mov dword [ebp + 0x1c], eax
mov ecx, dword [ebp + 0x30]
add ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
adc dword [ebp + 0x34], eax
movzx eax, word [ebp + 0x1c]
mov dword [ebp + 0x40], eax
cdq
mov dword [ebp + 0x30], ecx
sub ecx, eax
mov eax, dword [ebp + 0x34]
push ebx
sbb eax, edx
push eax
push ecx
push dword [ebp + 0x6c]
call fcn.00426f04
add esp, 0x10
cmp edx, ebx
jg 0x44d7bd
jl 0x44d755
cmp eax, ebx
jb 0x44d755
cmp byte [ebp + 0x6b], bl
je 0x44d801
mov eax, dword [ebp - 4]
cdq
cmp esi, edx
jl 0x44d7d4
jg 0x44d7d0
cmp edi, eax
jbe 0x44d7d4
mov edi, eax
mov esi, edx
cmp esi, ebx
jl 0x44d9d5
jg 0x44d7e6
cmp edi, ebx
jbe 0x44d9d5
push dword [ebp + 0x54]
push dword [ebp + 0x40]
push esi
push edi
push dword [ebp - 8]
push dword [ebp + 0x6c]
call fcn.004292fa
add esp, 0x18
jmp 0x44d9d5
sub edi, dword [ebp + 0x30]
mov eax, dword [ebp + 0x5c]
sbb esi, dword [ebp + 0x34]
cmp eax, ebx
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], esi
jl 0x44d830
jg 0x44d81b
cmp dword [ebp + 0x58], ebx
jb 0x44d830
cmp eax, dword [ebp + 0x64]
jg 0x44d830
jl 0x44d827
cmp dword [ebp + 0x58], edi
jae 0x44d830
mov edi, dword [ebp + 0x58]
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], eax
cmp byte [ebp + 0x6a], bl
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x78], eax
mov dword [ebp + 0xc], ebx
je 0x44d88c
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0xc]
call fcn.00409e88
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x64]
jl 0x44d866
jg 0x44d863
cmp eax, dword [ebp + 0x60]
jbe 0x44d866
mov ecx, dword [ebp + 0x60]
cmp ecx, ebx
jle 0x44d9cd
push dword [ebp + 0x54]
mov eax, ecx
push dword [ebp + 0x40]
cdq
push edx
push eax
push dword [ebp + 0xc]
push dword [ebp + 0x6c]
call fcn.004292fa
add esp, 0x18
jmp 0x44d9cd
mov esi, 0x200
sub esi, dword [ebp + 0x40]
cmp dword [ebp + 0x64], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp - 0xc], ebx
mov byte [ebp + 0x6a], bl
jl 0x44d9cd
jg 0x44d8b3
cmp edi, ebx
jbe 0x44d9cd
cmp dword [ebp + 0x40], ebx
jg 0x44d8cb
jl 0x44d8bf
cmp dword [ebp + 0x3c], ebx
ja 0x44d8cb
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x44d9cd
xor edi, edi
cmp esi, ebx
jle 0x44d9cd
cmp dword [ebp + 0x64], ebx
jl 0x44d98e
jg 0x44d8e9
cmp dword [ebp + 0x60], ebx
jbe 0x44d98e
cmp dword [ebp + 0x40], ebx
jg 0x44d96b
jl 0x44d8f5
cmp dword [ebp + 0x3c], ebx
ja 0x44d96b
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x44d98e
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2a
mov dword [ebp + 0x5c], ecx
jne 0x44d941
lea eax, [ebp + 0x3c]
push eax
inc ecx
lea eax, [ebp + 0x78]
inc ecx
push eax
mov dword [ebp + 0x78], ecx
call fcn.0042f2aa
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
jmp 0x44d941
cmp ax, 0x30
jb 0x44d93c
cmp ax, 0x39
jbe 0x44d949
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov ax, word [ecx]
cmp ax, bx
jne 0x44d930
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042dab0
cmp eax, 1
pop ecx
pop ecx
jl 0x44d98e
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x5c]
je 0x44d98e
mov al, byte [ebp - 0xc]
mov byte [ebp + 0x6a], al
add dword [ebp + 0x3c], 0xffffffff
mov al, byte [ebp + 0x6a]
mov byte [ebp + edi - 0x21c], al
adc dword [ebp + 0x40], 0xffffffff
inc edi
add dword [ebp + 0x60], 0xffffffff
adc dword [ebp + 0x64], 0xffffffff
cmp edi, esi
jl 0x44d8d5
cmp edi, ebx
jle 0x44d9cd
push dword [ebp + 0x54]
movzx eax, word [ebp + 0x1c]
push eax
mov eax, edi
cdq
push edx
push eax
lea eax, [ebp - 0x21c]
push eax
push dword [ebp + 0x6c]
call fcn.004292fa
add esp, 0x18
cmp dword [ebp + 0x64], ebx
mov dword [ebp + 0x1c], ebx
mov esi, 0x200
jg 0x44d8b3
jl 0x44d9cd
cmp dword [ebp + 0x60], ebx
ja 0x44d8b3
lea ecx, [ebp + 0xc]
call fcn.0042602e
lea ecx, [ebp + 0x6c]
call fcn.004029f8
jmp 0x44d0fe