Function at 0x483220
Capabilities:
Clear file content
Read file on windows
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4eb7a3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x484
push ebx
push ebp
push esi
mov esi, dword [esp + 0x4a0]
mov ax, word [esi]
push edi
xor edi, edi
cmp ax, di
mov dword [esp + 0x64], ecx
mov byte [esp + 0x41], 0
mov byte [esp + 0x1a], 0
mov byte [esp + 0x18], 0
mov byte [esp + 0x1b], 0
je 0x4832b5
cmp ax, 9
jb 0x483274
cmp ax, 0xd
jbe 0x4832ae
cmp ax, 0x20
je 0x4832ae
cmp ax, 0x2a
jne 0x483288
mov al, byte [esi]
mov byte [esp + 0x41], al
jmp 0x4832a2
cmp ax, 0x2e
jne 0x483296
mov cl, byte [esi]
mov byte [esp + 0x1a], cl
jmp 0x4832a2
cmp ax, 0x23
jne 0x4832a2
mov dl, byte [esi]
mov byte [esp + 0x18], dl
mov ax, word [esi + 2]
add esi, 2
cmp ax, di
jne 0x483268
mov dword [esp + 0x4a4], esi
mov ax, word [esi]
cmp ax, 9
jb 0x4832c4
cmp ax, 0xd
jbe 0x4832ca
cmp ax, 0x20
jne 0x4832cf
add esi, 2
jmp 0x4832b5
mov dword [esp + 0x4a4], esi
mov eax, esi
mov ecx, 0x4facc0
mov edx, 2
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x483346
dec edx
jns 0x4832e2
mov ax, word [eax]
cmp ax, 9
jb 0x483308
cmp ax, 0xd
jbe 0x483313
cmp ax, 0x20
je 0x483313
cmp ax, di
jne 0x483346
add esi, 6
mov dword [esp + 0x4a4], esi
je 0x483341
nop
mov ax, word [esi]
cmp ax, 9
jb 0x48332f
cmp ax, 0xd
jbe 0x483335
cmp ax, 0x20
jne 0x48333a
add esi, 2
jmp 0x483320
mov dword [esp + 0x4a4], esi
mov byte [esp + 0x1b], 1
push 4
call fcn.00449130
add esp, 4
cmp eax, edi
mov dword [esp + 0x1c], eax
je 0x48335b
mov word [eax], di
or eax, 0xffffffff
mov dword [esp + 0x78], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov eax, 0x200
mov dword [esp + 0x4c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x49c], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x7c], SysReAllocStringLen
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x44], edi
mov byte [esp + 0x12], 0
mov byte [esp + 0x19], 0
mov byte [esp + 0x13], 0
mov byte [esp + 0x43], 0
mov eax, esi
mov ecx, 0x4facbc
mov edx, 2
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x4838ad
dec edx
jns 0x4833c2
mov ax, word [eax]
cmp ax, 9
jb 0x4833ec
cmp ax, 0xd
jbe 0x4833ff
xor ebp, ebp
cmp ax, 0x20
je 0x483401
cmp ax, bp
jne 0x4838af
jmp 0x483401
xor ebp, ebp
add esi, 6
mov dword [esp + 0x4a4], esi
je 0x483431
lea ecx, [ecx]
mov ax, word [esi]
cmp ax, 9
jb 0x48341f
cmp ax, 0xd
jbe 0x483425
cmp ax, 0x20
jne 0x48342a
add esi, 2
jmp 0x483410
mov dword [esp + 0x4a4], esi
cmp word [esi], 0x2d
mov byte [esp + 0x13], 1
mov byte [esp + 0x41], 1
jne 0x4838af
jmp 0x483450
mov ax, word [esi + 2]
cmp ax, bp
je 0x48386b
cmp ax, 9
jb 0x48346d
cmp ax, 0xd
jbe 0x48386b
cmp ax, 0x20
je 0x48386b
cmp ax, 0x2c
je 0x48386b
mov eax, esi
mov ecx, str._bs
mov edx, 3
lea ecx, [ecx]
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x4834ec
dec edx
jns 0x483490
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x4a8]
xor ebp, ebp
add esi, 8
push ecx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4ac], esi
call fcn.0044f5a0
add esp, 8
test eax, eax
jle 0x4834e0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x74], eax
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x4a4]
jmp 0x483834
mov eax, esi
mov ecx, str._ibs
mov edx, 4
jmp 0x483500
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x483558
dec edx
jns 0x483500
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x4a8]
xor ebp, ebp
add esi, 0xa
push eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4ac], esi
call fcn.0044f5a0
add esp, 8
test eax, eax
jle 0x4834e0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x4a4]
mov dword [esp + 0x4c], ecx
jmp 0x483834
mov eax, esi
mov ecx, str._obs
mov edx, 4
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x4835c0
dec edx
jns 0x483564
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x4a8]
xor ebp, ebp
add esi, 0xa
push eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4ac], esi
call fcn.0044f5a0
add esp, 8
test eax, eax
jle 0x4834e0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x4a4]
mov dword [esp + 0x74], ecx
jmp 0x483834
mov eax, esi
mov ecx, str._count
mov edx, 6
lea esp, [esp]
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x483634
dec edx
jns 0x4835d0
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x4a8]
xor ebp, ebp
add esi, 0xe
push eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4ac], esi
call fcn.0044f5a0
add esp, 8
test eax, eax
jle 0x4834e0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x4a4]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
jmp 0x483834
mov eax, esi
mov ecx, str._len
mov edx, 4
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x4836a4
dec edx
jns 0x483640
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x4a8]
xor ebp, ebp
add esi, 0xa
push ecx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4ac], esi
call fcn.0044f5a0
add esp, 8
test eax, eax
jle 0x4834e0
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x4a4]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
jmp 0x483834
mov eax, esi
mov ecx, str._conv
mov edx, 5
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x4836fc
dec edx
jns 0x4836b0
add esi, 0xc
push 7
push esi
push str.notrunc
mov dword [esp + 0x4b0], esi
call fcn.004449d0
add esp, 0xc
test al, al
je 0x4836ea
mov byte [esp + 0x19], 1
lea ecx, [esp + 0x4a4]
push ecx
call fcn.00417de5
jmp 0x483828
push 6
push esi
push str._skip
call fcn.004449d0
add esp, 0xc
test al, al
je 0x483764
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x4a8]
xor ebp, ebp
or edi, 0xffffffff
add esi, 0xc
push eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4ac], esi
call fcn.0044f5a0
add esp, 8
test eax, eax
jle 0x4834e0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x4a4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
jmp 0x483834
push 7
push esi
push str._skipb
call fcn.004449d0
add esp, 0xc
test al, al
je 0x4837c6
lea eax, [esp + 0x38]
xor ebp, ebp
push eax
lea ecx, [esp + 0x4a8]
add esi, 0xe
push ecx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4ac], esi
call fcn.0044f5a0
add esp, 8
test eax, eax
jle 0x4834e0
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x4a4]
mov dword [esp + 0x28], edx
jmp 0x483834
push 6
push esi
push str._quick
call fcn.00444970
add esp, 0xc
test al, al
je 0x4837f8
lea eax, [esp + 0x4a4]
add esi, 0xc
push eax
mov dword [esp + 0x4a8], esi
call fcn.00443850
mov byte [esp + 0x47], 1
jmp 0x483828
push 7
push esi
push str._qspace
call fcn.00444970
add esp, 0xc
test al, al
je 0x483832
lea ecx, [esp + 0x4a4]
add esi, 0xe
push ecx
mov dword [esp + 0x4a8], esi
call fcn.00443850
mov byte [esp + 0x47], 0x10
mov esi, dword [esp + 0x4a8]
add esp, 4
xor ebp, ebp
cmp esi, ebp
je 0x483861
jmp 0x483840
mov ax, word [esi]
cmp ax, 9
jb 0x48384f
cmp ax, 0xd
jbe 0x483855
cmp ax, 0x20
jne 0x48385a
add esi, 2
jmp 0x483840
mov dword [esp + 0x4a4], esi
cmp word [esi], 0x2d
je 0x483450
cmp edi, ebp
mov dword [esp + 0x2c], edi
jg 0x4838af
jl 0x48387b
cmp dword [esp + 0x28], ebp
jae 0x4838af
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x34]
cdq
push ecx
push edx
push eax
call fcn.004b4970
cmp edx, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jg 0x4838af
jl 0x4838a3
cmp eax, ebp
jae 0x4838af
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
jmp 0x4838af
xor ebp, ebp
mov eax, esi
mov ecx, str._quick
mov edx, 5
jmp 0x4838c0
movzx edi, word [eax]
movsx ebx, byte [ecx]
or edi, 0x20
or ebx, 0x20
add eax, 2
inc ecx
cmp ebx, edi
jne 0x483926
dec edx
jns 0x4838c0
mov ax, word [eax]
cmp ax, 9
jb 0x4838e6
cmp ax, 0xd
jbe 0x4838f1
cmp ax, 0x20
je 0x4838f1
cmp ax, bp
jne 0x483926
add esi, 0xc
mov dword [esp + 0x4a4], esi
je 0x483921
lea ecx, [ecx]
mov ax, word [esi]
cmp ax, 9
jb 0x48390f
cmp ax, 0xd
jbe 0x483915
cmp ax, 0x20
jne 0x48391a
add esi, 2
jmp 0x483900
mov dword [esp + 0x4a4], esi
mov byte [esp + 0x43], 1
push 0x2c
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x4ac]
push eax
call fcn.0044c770
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x28], ebp
push ebx
mov byte [esp + 0x4ac], 1
call fcn.00422077
mov esi, eax
xor edi, edi
add esp, 0x10
cmp esi, ebp
mov dword [esp + 0x1c], edi
je 0x48398f
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
push edi
call fcn.00449130
mov ecx, edi
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, eax
mov dword [esp + 0x1c], edi
cmp ebx, ebp
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [esp + 0x49c], 0
je 0x4839ae
mov eax, dword [0x51d3c8]
add ebx, 0xfffffff8
push ebx
push ebp
push eax
call esi
mov ecx, dword [esp + 0x4a4]
cmp word [ecx], 0x2c
jne 0x484f1c
cmp word [edi], bp
je 0x484f1c
mov eax, ecx
add eax, 2
lea edx, [esp + 0x5c]
mov dword [esp + 0x4a4], eax
push edx
lea eax, [esp + 0x4a8]
push eax
call fcn.0044f5a0
mov eax, dword [esp + 0x68]
add esp, 8
cmp eax, ebp
jg 0x483a01
jl 0x484f20
cmp dword [esp + 0x5c], ebp
jb 0x484f20
mov edx, dword [esp + 0x4a4]
or ebx, 0xffffffff
cmp word [edx], 0x23
mov ebp, 0xfffffffc
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebx
jne 0x483a47
lea eax, [esp + 0x30]
mov edi, edx
push eax
lea ecx, [esp + 0x4a8]
add edi, 2
push ecx
mov dword [esp + 0x4ac], edi
call fcn.0044f5a0
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
add esp, 8
mov edx, dword [esp + 0x4a4]
cmp word [edx], 0
je 0x483a60
mov eax, edx
add eax, 2
mov dword [esp + 0x4a4], eax
mov ecx, dword [esp + 0x24]
test ecx, ecx
jl 0x483a88
mov eax, dword [esp + 0x20]
jg 0x483a72
test eax, eax
jb 0x483a88
cmp ebx, ecx
jl 0x483a88
jg 0x483a7c
cmp ebp, eax
jbe 0x483a88
mov ebp, eax
mov ebx, ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebx
lea eax, [esp + 0x4a4]
push eax
call fcn.00443850
mov edi, dword [esp + 0x4a8]
push edi
call fcn.00420229
push edi
push str.zero
call fcn.00444a10
mov byte [esp + 0x52], al
mov ax, word [edi]
add esp, 0x10
cmp ax, 0x26
jne 0x483ac2
or byte [esp + 0x18], 0x10
test ax, ax
mov dword [esp + 0x70], edi
jne 0x483aec
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x51d3c8]
add ecx, 0xfffffff8
push ecx
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 1
jmp 0x484f33
lea eax, [esp + 0x58]
push 1
push eax
mov dword [esp + 0x60], edi
call fcn.004529a0
push 2
mov esi, eax
mov dword [esp + 0x90], 0
call fcn.00449130
add esp, 0xc
test eax, eax
mov dword [esp + 0x84], eax
je 0x483b21
mov byte [eax], 0
xor eax, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov cl, byte [esp + 0x18]
test cl, cl
mov byte [esp + 0x49c], 2
mov byte [esp + 0x4b], al
mov dword [esp + 0x50], eax
je 0x483d56
push 0x51d5ec
mov dword [esp + 0x3c], 0x51d5ec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 2
call fcn.00449130
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x58], esi
je 0x483b79
mov word [esi], 0
mov ecx, dword [esp + 0x64]
push 0xffffffffffffffff
push 0
push edi
mov byte [esp + 0x4a8], 4
call fcn.0041ff6a
test eax, eax
mov dword [esp + 0x50], eax
jne 0x483bf6
test esi, esi
je 0x483bb1
mov ecx, dword [0x51d3c8]
add esi, 0xfffffff8
push esi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
push ecx
call esi
jmp 0x483bb7
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0x51d5ec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x84]
test eax, eax
je 0x483bdc
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff8
push eax
mov dword [esp + 0x88], 0
push 0
jmp 0x484f25
mov edx, dword [esp + 0x50]
mov edi, dword [edx + 0xc]
and edi, 0x3fffffff
test ebx, ebx
jl 0x483c32
jg 0x483c0d
test ebp, ebp
jbe 0x483c32
mov eax, edi
cdq
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
mov ecx, ebp
add ecx, eax
mov esi, edx
mov edx, dword [esp + 0x2c]
mov eax, ebx
adc eax, edx
cmp eax, esi
jl 0x483c69
jg 0x483c32
cmp ecx, dword [esp + 0x38]
jbe 0x483c69
mov ecx, dword [esp + 0x2c]
mov eax, edi
cdq
mov esi, edx
mov edx, dword [esp + 0x28]
mov ebp, eax
sub ebp, edx
mov ebx, esi
sbb ebx, ecx
test ebx, ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebx
jg 0x483c69
jl 0x483c5d
test ebp, ebp
ja 0x483c69
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x24]
test ecx, ecx
jl 0x483c8f
mov eax, dword [esp + 0x20]
jg 0x483c7b
test eax, eax
jb 0x483c8f
cmp ecx, ebx
jg 0x483c8f
jl 0x483c85
cmp eax, ebp
jae 0x483c8f
mov ebp, eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x84]
lea eax, [ebp + 0x200001]
push ecx
call fcn.00449190
add esp, 4
test eax, eax
mov dword [esp + 0x84], eax
je 0x483cc3
mov byte [eax + ebp + 0x200000], 0
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x483cdc
lea ecx, [esp + 0x58]
call fcn.00443880
push 0x51d5ec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x484983
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x2c]
add eax, 0x100000
and eax, 0xfff00000
cmp edx, esi
mov dword [esp + 0x70], eax
jl 0x483d11
jg 0x483d05
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x38]
jbe 0x483d11
mov edx, dword [esp + 0x38]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
add ecx, dword [esp + 0x28]
test ebp, ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x50], ebp
jle 0x483d33
cmp eax, ecx
je 0x483d33
push ebp
push ecx
push eax
call fcn.004b3b10
add esp, 0xc
lea ecx, [esp + 0x58]
mov byte [esp + 0x4b], 1
mov byte [esp + 0x12], 1
call fcn.00443880
push 0x51d5ec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x483f2f
cmp esi, eax
je 0x483f2f
mov al, byte [esi]
mov byte [esp + 0x12], al
mov byte [esp + 0x4b], al
lea eax, [esi + 2]
mov dword [esp + 0x90], 0x20
cmp word [eax], 0x2e
mov dword [esp + 0x50], eax
jne 0x483d98
mov cl, byte [eax]
add eax, 2
mov byte [esp + 0x12], cl
mov dword [esp + 0x50], eax
mov dword [esp + 0x90], 0x40
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.004528b0
mov bx, word [esi]
mov ecx, dword [esp + 0x60]
xor edi, edi
mov ebp, eax
mov eax, dword [0x51d1cc]
add esp, 8
mov word [esi], di
cmp word [ecx], di
je 0x483dce
push 2
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test eax, eax
mov word [esi], bx
je 0x483df8
lea ecx, [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x88]
push edx
push ebp
push ecx
push eax
call fcn.00423fea
add esp, 0x14
mov esi, eax
jmp 0x483dfc
mov esi, dword [esp + 0x70]
test edi, edi
je 0x483e07
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test esi, esi
je 0x484983
mov eax, dword [esp + 0x34]
test eax, eax
mov edi, dword [esp + 0x88]
mov dword [esp + 0x64], edi
jl 0x483e4f
jg 0x483e2c
mov eax, dword [esp + 0x30]
test eax, eax
jbe 0x483e4f
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
add esi, ecx
mov ecx, dword [esp + 0x34]
adc ecx, dword [esp + 0x2c]
mov eax, edi
cdq
cmp ecx, edx
mov ebx, eax
mov ebp, edx
jl 0x483e7e
jg 0x483e4f
cmp esi, eax
jbe 0x483e7e
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov eax, edi
cdq
mov ebx, eax
sub eax, esi
mov ebp, edx
sbb edx, ecx
xor ecx, ecx
cmp edx, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
jg 0x483e7e
jl 0x483e76
cmp eax, ecx
ja 0x483e7e
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
add edi, 0x200000
push edi
lea ecx, [esp + 0x88]
call fcn.004492e0
mov edx, dword [esp + 0x84]
test edx, edx
je 0x484983
mov esi, dword [esp + 0x64]
xor eax, eax
mov ecx, 0x7f
lea edi, [esi + edx]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
cmp dword [esp + 0x2c], ebp
jl 0x483ec9
jg 0x483ec1
cmp dword [esp + 0x28], ebx
jbe 0x483ec9
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebp
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
add edx, ecx
test esi, esi
jl 0x483efd
mov ecx, dword [esp + 0x20]
jg 0x483ee1
test ecx, ecx
jb 0x483efd
cmp esi, dword [esp + 0x34]
jg 0x483efd
jl 0x483ef1
mov eax, dword [esp + 0x30]
cmp ecx, eax
jae 0x483f01
mov eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], esi
jmp 0x483f01
mov eax, dword [esp + 0x30]
lea ecx, [edx + 0x100000]
and ecx, 0xfff00000
test eax, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ecx
jle 0x483f2f
cmp ecx, edx
je 0x483f2f
push eax
push edx
push ecx
call fcn.004b3b10
add esp, 0xc
xor esi, esi
mov dword [esp + 0x64], esi
mov byte [esp + 0x18], 0
mov dword [esp + 0x58], esi
mov dword [esp + 0x14], esi
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x4a4], 5
call fcn.00452060
mov bl, al
add esp, 8
test bl, bl
mov byte [esp + 0x6c], bl
jl 0x484911
mov al, byte [esp + 0x13]
test al, al
je 0x483f88
mov cl, byte [esp + 0x19]
test cl, cl
jne 0x483f83
test bl, bl
mov byte [esp + 0x18], 1
jle 0x483f88
mov byte [esp + 0x18], 0
test al, al
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x19], 1
je 0x483fa4
mov cl, byte [esp + 0x4b]
test cl, cl
jne 0x483fa4
mov byte [esp + 0x13], 2
jmp 0x483fa8
cmp al, 2
jne 0x483fca
test bl, bl
jg 0x483fca
push esi
push esi
push 4
push esi
push 3
push 0xc0000000
push edi
lea ecx, [esp + 0x30]
call fcn.00417e55
mov ebp, dword [esp + 0x14]
cmp ebp, esi
jne 0x483fe4
push esi
push esi
push 3
push esi
push 3
push 0xc0000000
push edi
lea ecx, [esp + 0x30]
call fcn.00417e55
mov ebp, dword [esp + 0x14]
cmp byte [esp + 0x13], 2
jne 0x484934
mov esi, dword [esp + 0x4c]
test esi, esi
jle 0x484911
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x484911
mov ecx, dword [esp + 0x24]
test ecx, ecx
jl 0x484045
jg 0x484019
mov eax, dword [esp + 0x20]
test eax, eax
jb 0x484045
mov ebx, dword [esp + 0x20]
mov eax, esi
cdq
mov edi, eax
add edi, ebx
mov ebx, edx
adc ebx, ecx
push edx
sub edi, 1
push eax
sbb ebx, 0
push ebx
push edi
call fcn.004b48c0
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
jmp 0x48407d
mov ecx, dword [esp + 0x78]
cmp ecx, 0xffffffff
jne 0x484065
mov edx, dword [esp + 0x7c]
mov eax, 0x7fffffff
cmp edx, eax
jne 0x484065
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jmp 0x48407d
mov ebx, dword [esp + 0x7c]
push ebx
mov eax, esi
cdq
push ecx
push edx
push eax
call fcn.004b4970
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x4a4]
push ecx
call fcn.00422077
add esp, 4
push eax
lea ecx, [esp + 0x84]
call fcn.004134f5
test ebp, ebp
mov byte [esp + 0x49c], 6
je 0x484315
mov bl, byte [esp + 0x43]
test bl, bl
mov dword [esp + 0x54], esi
je 0x48420e
mov al, byte [esp + 0x6c]
test al, al
jg 0x48420e
lea ecx, [esp + 0x14]
call fcn.004165a1
cmp bl, 1
jne 0x4840e1
push 0
push 0
push edi
call fcn.00451be0
add esp, 0xc
push 0
push 0
push 4
push 0
push 3
push 0xc0000000
push edi
lea ecx, [esp + 0x30]
call fcn.00417e55
mov ebp, dword [esp + 0x14]
test ebp, ebp
je 0x484315
mov al, byte [esp + 0x42]
test al, al
je 0x48420e
mov eax, dword [esp + 0x7c]
test eax, eax
jl 0x48420e
jg 0x48412c
mov eax, dword [esp + 0x78]
test eax, eax
jb 0x48420e
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x7c]
cdq
push ecx
push edx
push eax
call fcn.004b4970
mov ecx, dword [esp + 0x24]
test ecx, ecx
jl 0x484162
mov esi, dword [esp + 0x20]
jg 0x484154
test esi, esi
jb 0x484162
cmp edx, ecx
jl 0x484162
jg 0x48415e
cmp eax, esi
jbe 0x484162
mov eax, esi
mov edx, ecx
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x7c]
add eax, esi
adc edx, ecx
cmp ebx, 0x7fffffff
mov edi, eax
mov esi, edx
jl 0x484191
jg 0x484187
cmp dword [esp + 0x78], 0xffffffff
jb 0x484191
mov edi, 0xfffffdff
mov esi, 0x7fffffff
mov al, byte [esp + 0x18]
test al, al
jne 0x4841b7
push 2
push 0
push 0
push ebp
call fcn.00444930
add esp, 0x10
cmp edx, esi
jg 0x4841b7
jl 0x4841b2
cmp eax, edi
jae 0x4841b7
mov byte [esp + 0x18], 1
push 0
push esi
push edi
push ebp
call fcn.00444930
add esp, 0x10
cmp eax, edi
jne 0x4841ee
cmp edx, esi
jne 0x4841ee
cmp ebx, 0x7fffffff
jg 0x48420e
jl 0x4841dd
cmp dword [esp + 0x78], 0xffffffff
jae 0x48420e
lea ecx, [esp + 0x80]
call fcn.00443880
jmp 0x484eb4
cmp ebx, 0x7fffffff
jg 0x48420e
jl 0x4841ff
cmp dword [esp + 0x78], 0xffffffff
jae 0x48420e
push 0
push 0
push 0
push ebp
call fcn.00444930
add esp, 0x10
mov eax, dword [esp + 0x7c]
xor ebx, ebx
cmp eax, ebx
jl 0x4841dd
jg 0x484220
cmp dword [esp + 0x78], ebx
jbe 0x4841dd
cmp dword [esp + 0x24], ebx
jl 0x4841dd
jg 0x48422e
cmp dword [esp + 0x20], ebx
jbe 0x4841dd
mov cl, byte [esp + 0x42]
xor eax, eax
test cl, cl
mov dword [esp + 0x58], ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x90], ebx
jne 0x484254
mov cl, byte [esp + 0x4b]
test cl, cl
mov byte [esp + 0x12], 1
je 0x484259
mov byte [esp + 0x12], 0
mov cl, byte [esp + 0x6c]
test cl, cl
mov esi, dword [esp + 0x5c]
jle 0x484270
mov eax, esi
and eax, 0x1ff
mov dword [esp + 0x44], eax
cdq
sub esi, eax
mov eax, dword [esp + 0x60]
sbb eax, edx
mov edi, eax
js 0x4842b1
jg 0x484283
test esi, esi
jbe 0x4842b1
push 0
push edi
push esi
push ebp
call fcn.00444930
add esp, 0x10
cmp eax, esi
jne 0x484298
cmp edx, edi
je 0x4842b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x80]
mov esi, eax
call fcn.00443880
jmp 0x484ac5
mov dword [esp + 0x5c], 0
mov al, byte [esp + 0x12]
test al, al
mov byte [esp + 0x49c], 7
je 0x48438b
lea edx, [esp + 0x80]
push edx
call fcn.004521d0
add esp, 4
push 0
push 0
push 3
push 0
push 3
movsx esi, al
mov eax, dword [esp + 0x94]
push SysReAllocStringLen
push eax
lea ecx, [esp + 0x78]
mov dword [esp + 0x74], esi
call fcn.00417e55
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jne 0x484326
lea ecx, [esp + 0x5c]
call fcn.00417e50
lea ecx, [esp + 0x80]
call fcn.00443880
jmp 0x48497a
test esi, esi
mov esi, dword [esp + 0x28]
jle 0x48433d
mov ebx, esi
and ebx, 0x1ff
mov dword [esp + 0x90], ebx
mov eax, ebx
cdq
sub esi, eax
mov eax, dword [esp + 0x2c]
sbb eax, edx
test eax, eax
mov edi, eax
jl 0x48438b
jg 0x484354
test esi, esi
jbe 0x48438b
push 0
push eax
push esi
push ecx
call fcn.00444930
add esp, 0x10
cmp eax, esi
jne 0x484369
cmp edx, edi
je 0x48438b
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x5c]
mov esi, eax
call fcn.00417e50
lea ecx, [esp + 0x80]
call fcn.00443880
jmp 0x484ac5
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x74]
cmp esi, ebx
je 0x484399
add esi, ebx
add esi, 0x8000
lea ecx, [esi + 0x102a00]
push ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x34], esi
call fcn.004492b0
mov ebp, dword [esp + 0x64]
add ebp, 0x100000
and ebp, 0xfff00000
lea edx, [esi + ebp + 0x2800]
lea ecx, [esi + 0x2a00]
mov dword [esp + 0x70], edx
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov al, byte [esp + 0x6c]
xor esi, esi
test al, al
mov byte [esp + 0x49c], 8
mov dword [esp + 0x38], ebp
mov dword [esp + 0x68], esi
jle 0x484411
lea eax, [ebx + 0x1ff]
and eax, 0xfffffe00
mov dword [esp + 0x50], eax
jmp 0x484415
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x58]
test eax, eax
mov eax, dword [esp + 0x4c]
jle 0x48442b
add eax, 0x1ff
and eax, 0xfffffe00
mov edi, dword [esp + 0x90]
test edi, edi
mov dword [esp + 0x78], eax
mov byte [esp + 0x13], 0
jle 0x48449f
mov edx, dword [esp + 0x5c]
push 0
lea ecx, [esp + 0x58]
push ecx
push 0x200
push ebp
push edx
mov dword [esp + 0x68], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x20]
mov esi, 0x200
sub esi, edi
mov eax, esi
cdq
sub ecx, eax
mov eax, dword [esp + 0x24]
sbb eax, edx
test eax, eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jg 0x484491
jl 0x48448b
test ecx, ecx
jae 0x484491
add esi, ecx
mov dword [esp + 0x68], esi
push esi
lea eax, [edi + ebp]
push eax
push ebp
call fcn.004b3b10
add esp, 0xc
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x484530
mov ecx, dword [esp + 0x14]
push 1
push 0
push 0
push ecx
call fcn.00444930
mov ecx, dword [esp + 0x24]
add esp, 0x10
push 0
mov ebx, edx
lea edx, [esp + 0x58]
push edx
mov edi, eax
mov eax, dword [esp + 0x78]
push 0x200
push eax
push ecx
mov dword [esp + 0x68], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [esp + 0x44]
push esi
lea eax, [edx + ebp]
push ebp
push eax
call fcn.004b3b10
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x7c]
push ecx
push edx
push ebp
call fcn.004b3b10
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x2c]
push 0
push ebx
add esi, edx
push edi
push eax
mov dword [esp + 0x90], esi
call fcn.00444930
mov al, byte [esp + 0x6a]
add esp, 0x28
test al, al
je 0x484530
mov byte [esp + 0x13], 1
test esi, esi
mov byte [esp + 0x1b], 1
jg 0x484620
mov ebx, dword [esp + 0x24]
test ebx, ebx
mov edi, dword [esp + 0x20]
jl 0x484627
jg 0x484557
test edi, edi
jbe 0x484627
mov al, byte [esp + 0x1b]
test al, al
je 0x484627
mov al, byte [esp + 0x12]
test al, al
je 0x4845d2
mov ecx, dword [esp + 0x78]
mov eax, ecx
cdq
cmp edx, ebx
jg 0x484580
jl 0x48457c
cmp eax, edi
ja 0x484580
mov eax, ecx
jmp 0x484582
mov eax, edi
mov ecx, dword [esp + 0x30]
lea edx, [eax + esi]
cmp edx, ecx
jle 0x484591
mov eax, ecx
sub eax, esi
mov ecx, dword [esp + 0x58]
test ecx, ecx
jle 0x4845a3
add eax, 0x1ff
and eax, 0xfffffe00
push 0
lea ecx, [esp + 0x58]
push ecx
push eax
mov eax, dword [esp + 0x68]
lea edx, [esi + ebp]
push edx
push eax
mov dword [esp + 0x68], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x54]
test eax, eax
jbe 0x484627
cmp eax, edi
jbe 0x484600
mov eax, edi
jmp 0x4845fc
mov ecx, dword [esp + 0x50]
mov eax, ecx
cdq
cmp edx, ebx
jg 0x4845e7
jl 0x4845e3
cmp eax, edi
ja 0x4845e7
mov eax, ecx
jmp 0x4845e9
mov eax, edi
mov ecx, dword [esp + 0x30]
lea edx, [esi + eax]
cmp edx, ecx
mov dword [esp + 0x54], eax
jbe 0x484600
mov eax, ecx
sub eax, esi
mov dword [esp + 0x54], eax
cmp edi, 0xffffffff
jne 0x48460d
cmp ebx, 0x7fffffff
je 0x48461a
sub edi, eax
sbb ebx, 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
add esi, eax
mov dword [esp + 0x68], esi
mov ebx, ebp
jmp 0x4848b3
test esi, esi
jle 0x4848dd
mov byte [esp + 0x1b], 0
mov ebx, ebp
mov eax, dword [esp + 0x50]
cmp eax, esi
jg 0x484640
mov esi, eax
mov cl, byte [esp + 0x6c]
xor eax, eax
test cl, cl
mov dword [esp + 0x4c], eax
jle 0x484655
mov eax, esi
and eax, 0x1ff
mov ebp, esi
mov ecx, eax
sub ebp, ecx
test ebp, ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x28], ebp
jle 0x4846c3
mov ecx, dword [esp + 0x14]
push 0
lea eax, [esp + 0x50]
push eax
push ebp
push ebx
push ecx
call fcn.00447dc0
add esp, 0x14
test eax, eax
jne 0x484831
mov al, byte [esp + 0x19]
test al, al
jne 0x4847aa
call dword [sym.imp.KERNEL32.dll_GetLastError]
call fcn.00443980
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x64]
call fcn.00443880
lea ecx, [esp + 0x5c]
call fcn.00417e50
lea ecx, [esp + 0x80]
call fcn.00443880
jmp 0x484eb0
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x484770
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
xor eax, eax
push 1
push eax
mov ecx, 0x80
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x4c]
push eax
mov esi, 0x200
push edx
sub esi, edi
call fcn.00444930
mov ecx, dword [esp + 0x80]
add esp, 0x10
push 0
mov edi, eax
lea eax, [esp + 0x58]
push eax
push 0x200
mov ebp, edx
mov edx, dword [esp + 0x20]
push ecx
push edx
mov dword [esp + 0x68], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x68]
add eax, ecx
push esi
push eax
lea eax, [ebx + edx]
push eax
call fcn.004b3b10
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x20]
push 0
push ebp
add edx, esi
push edi
push ecx
mov dword [esp + 0x84], edx
mov esi, 0x200
call fcn.00444930
mov al, byte [esp + 0x5e]
mov ebp, dword [esp + 0x44]
add esp, 0x1c
test al, al
je 0x484770
mov byte [esp + 0x13], 1
xor ecx, ecx
test esi, esi
mov dword [esp + 0x4c], ecx
jle 0x48487e
mov eax, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x50]
push edx
push esi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x48487a
mov al, byte [esp + 0x19]
test al, al
je 0x484697
mov byte [esp + 0x19], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov cl, byte [esp + 0x19]
mov byte [esp + 0x1a], cl
lea ecx, [esp + 0x14]
mov byte [esp + 0x19], 0
mov dword [esp + 0x4c], 0
call fcn.004165a1
mov edi, dword [esp + 0x1c]
push 0
push 0
push 4
push 0
push 0
push 0xc0000000
push edi
lea ecx, [esp + 0x30]
call fcn.00417e55
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x48480c
push 0
push 0
push 3
push 0
push 0
push 0xc0000000
push edi
lea ecx, [esp + 0x30]
call fcn.00417e55
mov eax, dword [esp + 0x14]
push 0
lea edx, [esp + 0x50]
push edx
push ebp
push ebx
push eax
call fcn.00447dc0
add esp, 0x14
test eax, eax
je 0x484691
cmp byte [esp + 0x1a], 2
je 0x48487a
mov ecx, dword [esp + 0x4c]
cmp ecx, ebp
jbe 0x48483f
mov ecx, ebp
mov dword [esp + 0x4c], ecx
mov al, byte [esp + 0x13]
test al, al
je 0x484862
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x13], 0
mov edx, dword [esp + 0x68]
sub edx, ecx
sub esi, ecx
mov byte [esp + 0x19], 0
mov dword [esp + 0x68], edx
add ebx, ebp
jmp 0x4846c3
mov ecx, dword [esp + 0x4c]
mov al, byte [esp + 0x13]
test al, al
je 0x4848a1
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x13], 0
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x38]
add ebx, ecx
sub eax, ecx
mov dword [esp + 0x68], eax
mov esi, eax
cmp esi, dword [esp + 0x74]
jge 0x484636
test esi, esi
jle 0x48453d
cmp ebp, ebx
je 0x48453d
push esi
push ebx
push ebp
call fcn.004b3b10
add esp, 0xc
jmp 0x48453d
xor eax, eax
jne 0x484697
test ebx, ebx
jl 0x484904
jg 0x4848ef
test edi, edi
jbe 0x484904
cmp edi, 0xffffffff
jne 0x484697
cmp ebx, 0x7fffffff
jne 0x484697
mov dword [esp + 0x58], 0
jmp 0x4846a0
lea ecx, [esp + 0x14]
call fcn.00417e50
lea ecx, [esp + 0x84]
call fcn.00416732
lea ecx, [esp + 0x1c]
call fcn.00443880
jmp 0x484f2e
xor ebp, ebp
xor edi, edi
xor esi, esi
cmp bl, 0x11
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x38], ebp
jne 0x4849a2
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x20]
push eax
push ecx
push edx
call fcn.00451ef0
mov ebp, edx
add esp, 0xc
test ebp, ebp
mov dword [esp + 0x38], eax
jg 0x484a15
jl 0x48497a
test eax, eax
jae 0x484a15
lea ecx, [esp + 0x14]
call fcn.00417e50
lea ecx, [esp + 0x84]
call fcn.00416732
lea ecx, [esp + 0x1c]
call fcn.00443880
mov eax, 1
jmp 0x484f33
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x484aea
test bl, bl
jne 0x4849ef
push 2
push 0
push 0
push eax
call fcn.00444930
mov ebx, dword [esp + 0x6c]
add esp, 0x10
mov edi, eax
mov eax, dword [esp + 0x60]
mov ecx, ebx
sub ecx, 0x400
mov esi, edx
sbb eax, 0
cmp esi, eax
jg 0x484a21
jl 0x4849e2
cmp edi, ecx
jae 0x484a21
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x484a21
mov edx, dword [esp + 0x6c]
push edx
push eax
call fcn.00447d10
mov esi, edx
add esp, 8
test esi, esi
mov edi, eax
jg 0x484a1d
jl 0x484a0b
test edi, edi
jae 0x484a1d
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x484a1d
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x484aee
mov al, byte [esp + 0x41]
test al, al
je 0x484a45
mov al, byte [esp + 0x6c]
test al, al
jne 0x484a45
or edi, 0xffffffff
mov esi, 0x7fffffff
mov al, byte [esp + 0x6c]
test al, al
mov dword [esp + 0x44], 0
je 0x484a60
mov eax, ebx
and eax, 0x1ff
mov dword [esp + 0x44], eax
add ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
adc ecx, ebp
movzx ebp, word [esp + 0x44]
mov eax, edi
sub eax, ebx
mov dword [esp + 0x28], eax
mov eax, esi
sbb eax, ecx
mov dword [esp + 0x2c], eax
mov eax, ebp
cdq
sub ebx, eax
push 0
sbb ecx, edx
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
push ecx
mov dword [esp + 0x84], 0
call fcn.00444930
add esp, 0x10
test edx, edx
jg 0x484b41
jl 0x484ab4
test eax, eax
jae 0x484b41
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x74]
mov esi, eax
call fcn.00443880
lea ecx, [esp + 0x14]
call fcn.00417e50
lea ecx, [esp + 0x84]
call fcn.00416732
lea ecx, [esp + 0x1c]
call fcn.00443880
mov eax, esi
jmp 0x484f33
mov ebx, dword [esp + 0x5c]
mov al, byte [esp + 0x6c]
test al, al
jne 0x484b2b
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x1c]
push ecx
push ebx
push edx
call fcn.00451be0
mov eax, dword [esp + 0x28]
add esp, 0xc
push 0
push 0
push 4
push 0
push 3
push 0xc0000000
push eax
lea ecx, [esp + 0x30]
call fcn.00417e55
mov byte [esp + 0x41], 1
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x484a2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x484ac5
mov al, byte [esp + 0x12]
test al, al
je 0x484b8d
mov eax, dword [esp + 0x50]
cdq
cmp esi, edx
jl 0x484b5c
jg 0x484b58
cmp edi, eax
jbe 0x484b5c
mov edi, eax
mov esi, edx
test esi, esi
jl 0x484e9c
jg 0x484b6e
test edi, edi
jbe 0x484e9c
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x14]
push edx
push ebp
push esi
push edi
push eax
push ecx
call fcn.00452a80
add esp, 0x18
jmp 0x484e9c
mov ecx, dword [esp + 0x34]
test ecx, ecx
jl 0x484bbb
mov eax, dword [esp + 0x30]
jg 0x484b9f
test eax, eax
jb 0x484bbb
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jg 0x484bbf
jl 0x484bb1
mov edi, dword [esp + 0x28]
cmp eax, edi
jae 0x484bc3
mov edi, eax
mov dword [esp + 0x28], edi
mov ebx, ecx
jmp 0x484bc3
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x70]
mov cl, byte [esp + 0x1a]
test cl, cl
mov esi, eax
mov dword [esp + 0x4a4], esi
je 0x484c29
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x80]
call fcn.004493e0
mov esi, dword [esp + 0x74]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, ebx
jl 0x484c03
jg 0x484c01
cmp eax, edi
jbe 0x484c03
mov ecx, edi
test ecx, ecx
jle 0x484e9c
mov edx, dword [esp + 0x6c]
push edx
mov eax, ecx
cdq
push ebp
push edx
push eax
mov eax, dword [esp + 0x24]
push esi
push eax
call fcn.00452a80
add esp, 0x18
jmp 0x484e9c
mov cl, byte [esp + 0x1b]
lea eax, [esp + 0x294]
and eax, 0xfffffe00
mov dword [esp + 0x64], eax
mov eax, 0x200
sub eax, ebp
mov dword [esp + 0x50], eax
xor eax, eax
cmp ebx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov byte [esp + 0x1a], al
mov byte [esp + 0x12], cl
jl 0x484e9c
jg 0x484c70
cmp edi, eax
jbe 0x484e9c
lea esp, [esp]
mov eax, dword [esp + 0x24]
test eax, eax
jg 0x484c8c
jl 0x484c82
mov eax, dword [esp + 0x20]
test eax, eax
ja 0x484c8c
cmp word [esi], 0
je 0x484e9c
mov eax, dword [esp + 0x50]
xor ebp, ebp
xor edi, edi
cmp eax, ebp
jle 0x484e9c
lea esp, [esp]
cmp ebx, ebp
jl 0x484e54
jg 0x484cb4
cmp dword [esp + 0x28], ebp
jbe 0x484e54
cmp dword [esp + 0x24], ebp
jg 0x484d63
jl 0x484cca
cmp dword [esp + 0x20], ebp
ja 0x484d63
cmp word [esi], bp
je 0x484e54
lea edx, [esp + 0x4a4]
push edx
call fcn.00443850
mov ecx, dword [esp + 0x4a8]
add esp, 4
cmp word [ecx], 0x2a
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
jne 0x484d22
add ecx, 2
lea eax, [esp + 0x20]
mov dword [esp + 0x4a4], ecx
push eax
lea ecx, [esp + 0x4a8]
push ecx
call fcn.0044f5a0
mov ecx, dword [esp + 0x4ac]
add esp, 8
mov ax, word [ecx]
cmp ax, bp
je 0x484d80
lea ebx, [ebx]
cmp ax, 0x30
jb 0x484d3c
cmp ax, 0x39
jbe 0x484d79
mov dl, byte [esp + 0x12]
test dl, dl
je 0x484d53
or eax, 0x20
cmp ax, 0x61
jb 0x484d53
cmp ax, 0x7a
jbe 0x484d77
mov ax, word [ecx + 2]
add ecx, 2
xor ebp, ebp
cmp ax, bp
jne 0x484d30
jmp 0x484d79
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
or eax, 0xffffffff
add edx, eax
adc ecx, eax
jmp 0x484e2a
xor ebp, ebp
mov dword [esp + 0x4a4], ecx
cmp word [ecx], 0x30
jne 0x484da5
mov dx, word [ecx + 2]
or dx, 0x20
cmp dx, 0x78
jne 0x484da5
add ecx, 4
mov byte [esp + 0x12], 1
mov dword [esp + 0x4a4], ecx
jmp 0x484dad
mov al, byte [esp + 0x12]
test al, al
je 0x484de9
push 2
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x4ac]
push ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call fcn.0044a4b0
mov esi, dword [esp + 0x4b0]
mov ax, word [esi]
add esp, 0xc
call fcn.0043af40
test al, al
jne 0x484e0a
mov dl, byte [esp + 0x1b]
mov byte [esp + 0x12], dl
jmp 0x484e0a
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x4a8]
push ecx
call fcn.0044ce90
mov esi, dword [esp + 0x4ac]
add esp, 8
cmp eax, 1
jl 0x484e54
cmp esi, dword [esp + 0x38]
je 0x484e54
mov dl, byte [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x1a], dl
mov edx, dword [esp + 0x20]
or eax, 0xffffffff
add edx, eax
adc ecx, eax
or eax, 0xffffffff
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x24], ecx
mov cl, byte [esp + 0x1a]
mov byte [edi + edx], cl
mov edx, dword [esp + 0x28]
inc edi
add edx, eax
adc ebx, eax
cmp edi, dword [esp + 0x50]
mov dword [esp + 0x28], edx
jl 0x484ca0
cmp edi, ebp
jle 0x484e9c
mov eax, dword [esp + 0x6c]
movzx ecx, word [esp + 0x44]
push eax
push ecx
mov eax, edi
cdq
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x24]
push edx
push eax
call fcn.00452a80
add esp, 0x18
cmp ebx, ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x50], 0x200
jg 0x484c70
jl 0x484e9c
mov eax, dword [esp + 0x28]
test eax, eax
ja 0x484c70
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [esp + 0x74]
call fcn.00443880
mov ebp, dword [esp + 0x14]
mov al, byte [esp + 0x18]
test al, al
je 0x484ec3
push ebp
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test ebp, ebp
je 0x484ed3
cmp ebp, 0xffffffff
je 0x484ed3
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x84]
test eax, eax
je 0x484ef1
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x84], 0
je 0x484f16
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x58]
jmp 0x484f33
cmp edi, ebp
je 0x484f2e
add edi, 0xfffffff8
push edi
push ebp
mov ecx, dword [0x51d3c8]
push ecx
call esi
mov eax, 0x80070057
mov ecx, dword [esp + 0x494]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x490
ret 8