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

Disassembly:
push 0xffffffffffffffff
push 0x4e7443
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 0x481d35
cmp ax, 9
jb 0x481cf4
cmp ax, 0xd
jbe 0x481d2e
cmp ax, 0x20
je 0x481d2e
cmp ax, 0x2a
jne 0x481d08
mov al, byte [esi]
mov byte [esp + 0x41], al
jmp 0x481d22
cmp ax, 0x2e
jne 0x481d16
mov cl, byte [esi]
mov byte [esp + 0x1a], cl
jmp 0x481d22
cmp ax, 0x23
jne 0x481d22
mov dl, byte [esi]
mov byte [esp + 0x18], dl
mov ax, word [esi + 2]
add esi, 2
cmp ax, di
jne 0x481ce8
mov dword [esp + 0x4a4], esi
mov ax, word [esi]
cmp ax, 9
jb 0x481d44
cmp ax, 0xd
jbe 0x481d4a
cmp ax, 0x20
jne 0x481d4f
add esi, 2
jmp 0x481d35
mov dword [esp + 0x4a4], esi
mov eax, esi
mov ecx, 0x4f6848
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 0x481dc6
dec edx
jns 0x481d62
mov ax, word [eax]
cmp ax, 9
jb 0x481d88
cmp ax, 0xd
jbe 0x481d93
cmp ax, 0x20
je 0x481d93
cmp ax, di
jne 0x481dc6
add esi, 6
mov dword [esp + 0x4a4], esi
je 0x481dc1
nop
mov ax, word [esi]
cmp ax, 9
jb 0x481daf
cmp ax, 0xd
jbe 0x481db5
cmp ax, 0x20
jne 0x481dba
add esi, 2
jmp 0x481da0
mov dword [esp + 0x4a4], esi
mov byte [esp + 0x1b], 1
push 4
call fcn.00445f00
add esp, 4
cmp eax, edi
mov dword [esp + 0x1c], eax
je 0x481ddb
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, 0x4f6844
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 0x48232d
dec edx
jns 0x481e42
mov ax, word [eax]
cmp ax, 9
jb 0x481e6c
cmp ax, 0xd
jbe 0x481e7f
xor ebp, ebp
cmp ax, 0x20
je 0x481e81
cmp ax, bp
jne 0x48232f
jmp 0x481e81
xor ebp, ebp
add esi, 6
mov dword [esp + 0x4a4], esi
je 0x481eb1
lea ecx, [ecx]
mov ax, word [esi]
cmp ax, 9
jb 0x481e9f
cmp ax, 0xd
jbe 0x481ea5
cmp ax, 0x20
jne 0x481eaa
add esi, 2
jmp 0x481e90
mov dword [esp + 0x4a4], esi
cmp word [esi], 0x2d
mov byte [esp + 0x13], 1
mov byte [esp + 0x41], 1
jne 0x48232f
jmp 0x481ed0
mov ax, word [esi + 2]
cmp ax, bp
je 0x4822eb
cmp ax, 9
jb 0x481eed
cmp ax, 0xd
jbe 0x4822eb
cmp ax, 0x20
je 0x4822eb
cmp ax, 0x2c
je 0x4822eb
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 0x481f6c
dec edx
jns 0x481f10
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.0044d230
add esp, 8
test eax, eax
jle 0x481f60
mov eax, dword [esp + 0x38]
mov dword [esp + 0x74], eax
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x4a4]
jmp 0x4822b4
mov eax, esi
mov ecx, str._ibs
mov edx, 4
jmp 0x481f80
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x481fd8
dec edx
jns 0x481f80
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.0044d230
add esp, 8
test eax, eax
jle 0x481f60
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x4a4]
mov dword [esp + 0x4c], ecx
jmp 0x4822b4
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 0x482040
dec edx
jns 0x481fe4
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.0044d230
add esp, 8
test eax, eax
jle 0x481f60
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x4a4]
mov dword [esp + 0x74], ecx
jmp 0x4822b4
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 0x4820b4
dec edx
jns 0x482050
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.0044d230
add esp, 8
test eax, eax
jle 0x481f60
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 0x4822b4
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 0x482124
dec edx
jns 0x4820c0
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.0044d230
add esp, 8
test eax, eax
jle 0x481f60
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 0x4822b4
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 0x48217c
dec edx
jns 0x482130
add esi, 0xc
push 7
push esi
push str.notrunc
mov dword [esp + 0x4b0], esi
call fcn.00440450
add esp, 0xc
test al, al
je 0x48216a
mov byte [esp + 0x19], 1
lea ecx, [esp + 0x4a4]
push ecx
call fcn.0041676d
jmp 0x4822a8
push 6
push esi
push str._skip
call fcn.00440450
add esp, 0xc
test al, al
je 0x4821e4
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.0044d230
add esp, 8
test eax, eax
jle 0x481f60
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 0x4822b4
push 7
push esi
push str._skipb
call fcn.00440450
add esp, 0xc
test al, al
je 0x482246
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.0044d230
add esp, 8
test eax, eax
jle 0x481f60
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x4a4]
mov dword [esp + 0x28], edx
jmp 0x4822b4
push 6
push esi
push str._quick
call fcn.004403f0
add esp, 0xc
test al, al
je 0x482278
lea eax, [esp + 0x4a4]
add esi, 0xc
push eax
mov dword [esp + 0x4a8], esi
call fcn.0043f2e0
mov byte [esp + 0x47], 1
jmp 0x4822a8
push 7
push esi
push str._qspace
call fcn.004403f0
add esp, 0xc
test al, al
je 0x4822b2
lea ecx, [esp + 0x4a4]
add esi, 0xe
push ecx
mov dword [esp + 0x4a8], esi
call fcn.0043f2e0
mov byte [esp + 0x47], 0x10
mov esi, dword [esp + 0x4a8]
add esp, 4
xor ebp, ebp
cmp esi, ebp
je 0x4822e1
jmp 0x4822c0
mov ax, word [esi]
cmp ax, 9
jb 0x4822cf
cmp ax, 0xd
jbe 0x4822d5
cmp ax, 0x20
jne 0x4822da
add esi, 2
jmp 0x4822c0
mov dword [esp + 0x4a4], esi
cmp word [esi], 0x2d
je 0x481ed0
cmp edi, ebp
mov dword [esp + 0x2c], edi
jg 0x48232f
jl 0x4822fb
cmp dword [esp + 0x28], ebp
jae 0x48232f
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.004b08b0
cmp edx, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jg 0x48232f
jl 0x482323
cmp eax, ebp
jae 0x48232f
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
jmp 0x48232f
xor ebp, ebp
mov eax, esi
mov ecx, str._quick
mov edx, 5
jmp 0x482340
movzx edi, word [eax]
movsx ebx, byte [ecx]
or edi, 0x20
or ebx, 0x20
add eax, 2
inc ecx
cmp ebx, edi
jne 0x4823a6
dec edx
jns 0x482340
mov ax, word [eax]
cmp ax, 9
jb 0x482366
cmp ax, 0xd
jbe 0x482371
cmp ax, 0x20
je 0x482371
cmp ax, bp
jne 0x4823a6
add esi, 0xc
mov dword [esp + 0x4a4], esi
je 0x4823a1
lea ecx, [ecx]
mov ax, word [esi]
cmp ax, 9
jb 0x48238f
cmp ax, 0xd
jbe 0x482395
cmp ax, 0x20
jne 0x48239a
add esi, 2
jmp 0x482380
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.00449370
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x28], ebp
push ebx
mov byte [esp + 0x4ac], 1
call fcn.0042063d
mov esi, eax
xor edi, edi
add esp, 0x10
cmp esi, ebp
mov dword [esp + 0x1c], edi
je 0x48240f
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
push edi
call fcn.00445f00
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 0x48242e
mov eax, dword [0x51927c]
add ebx, 0xfffffff8
push ebx
push ebp
push eax
call esi
mov ecx, dword [esp + 0x4a4]
cmp word [ecx], 0x2c
jne 0x48399c
cmp word [edi], bp
je 0x48399c
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.0044d230
mov eax, dword [esp + 0x68]
add esp, 8
cmp eax, ebp
jg 0x482481
jl 0x4839a0
cmp dword [esp + 0x5c], ebp
jb 0x4839a0
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 0x4824c7
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.0044d230
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
add esp, 8
mov edx, dword [esp + 0x4a4]
cmp word [edx], 0
je 0x4824e0
mov eax, edx
add eax, 2
mov dword [esp + 0x4a4], eax
mov ecx, dword [esp + 0x24]
test ecx, ecx
jl 0x482508
mov eax, dword [esp + 0x20]
jg 0x4824f2
test eax, eax
jb 0x482508
cmp ebx, ecx
jl 0x482508
jg 0x4824fc
cmp ebp, eax
jbe 0x482508
mov ebp, eax
mov ebx, ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebx
lea eax, [esp + 0x4a4]
push eax
call fcn.0043f2e0
mov edi, dword [esp + 0x4a8]
push edi
call fcn.0041e7ef
push edi
push str.zero
call fcn.00440490
mov byte [esp + 0x52], al
mov ax, word [edi]
add esp, 0x10
cmp ax, 0x26
jne 0x482542
or byte [esp + 0x18], 0x10
test ax, ax
mov dword [esp + 0x70], edi
jne 0x48256c
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x51927c]
add ecx, 0xfffffff8
push ecx
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 1
jmp 0x4839b3
lea eax, [esp + 0x58]
push 1
push eax
mov dword [esp + 0x60], edi
call fcn.00451930
push 2
mov esi, eax
mov dword [esp + 0x90], 0
call fcn.00445f00
add esp, 0xc
test eax, eax
mov dword [esp + 0x84], eax
je 0x4825a1
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 0x4827d6
push 0x5194ec
mov dword [esp + 0x3c], 0x5194ec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 2
call fcn.00445f00
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x58], esi
je 0x4825f9
mov word [esi], 0
mov ecx, dword [esp + 0x64]
push 0xffffffffffffffff
push 0
push edi
mov byte [esp + 0x4a8], 4
call fcn.0041e533
test eax, eax
mov dword [esp + 0x50], eax
jne 0x482676
test esi, esi
je 0x482631
mov ecx, dword [0x51927c]
add esi, 0xfffffff8
push esi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
push ecx
call esi
jmp 0x482637
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0x5194ec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x84]
test eax, eax
je 0x48265c
mov edx, dword [0x51927c]
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 0x4839a5
mov edx, dword [esp + 0x50]
mov edi, dword [edx + 0xc]
and edi, 0x3fffffff
test ebx, ebx
jl 0x4826b2
jg 0x48268d
test ebp, ebp
jbe 0x4826b2
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 0x4826e9
jg 0x4826b2
cmp ecx, dword [esp + 0x38]
jbe 0x4826e9
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 0x4826e9
jl 0x4826dd
test ebp, ebp
ja 0x4826e9
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 0x48270f
mov eax, dword [esp + 0x20]
jg 0x4826fb
test eax, eax
jb 0x48270f
cmp ecx, ebx
jg 0x48270f
jl 0x482705
cmp eax, ebp
jae 0x48270f
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.00445f60
add esp, 4
test eax, eax
mov dword [esp + 0x84], eax
je 0x482743
mov byte [eax + ebp + 0x200000], 0
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x48275c
lea ecx, [esp + 0x58]
call fcn.0043f290
push 0x5194ec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x483403
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 0x482791
jg 0x482785
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x38]
jbe 0x482791
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 0x4827b3
cmp eax, ecx
je 0x4827b3
push ebp
push ecx
push eax
call fcn.004aee50
add esp, 0xc
lea ecx, [esp + 0x58]
mov byte [esp + 0x4b], 1
mov byte [esp + 0x12], 1
call fcn.0043f290
push 0x5194ec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4829af
cmp esi, eax
je 0x4829af
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 0x482818
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.00451840
mov bx, word [esi]
mov ecx, dword [esp + 0x60]
xor edi, edi
mov ebp, eax
mov eax, dword [0x51907c]
add esp, 8
mov word [esi], di
cmp word [ecx], di
je 0x48284e
push 2
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test eax, eax
mov word [esi], bx
je 0x482878
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.00422b90
add esp, 0x14
mov esi, eax
jmp 0x48287c
mov esi, dword [esp + 0x70]
test edi, edi
je 0x482887
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test esi, esi
je 0x483403
mov eax, dword [esp + 0x34]
test eax, eax
mov edi, dword [esp + 0x88]
mov dword [esp + 0x64], edi
jl 0x4828cf
jg 0x4828ac
mov eax, dword [esp + 0x30]
test eax, eax
jbe 0x4828cf
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 0x4828fe
jg 0x4828cf
cmp esi, eax
jbe 0x4828fe
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 0x4828fe
jl 0x4828f6
cmp eax, ecx
ja 0x4828fe
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
add edi, 0x200000
push edi
lea ecx, [esp + 0x88]
call fcn.004460b0
mov edx, dword [esp + 0x84]
test edx, edx
je 0x483403
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 0x482949
jg 0x482941
cmp dword [esp + 0x28], ebx
jbe 0x482949
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 0x48297d
mov ecx, dword [esp + 0x20]
jg 0x482961
test ecx, ecx
jb 0x48297d
cmp esi, dword [esp + 0x34]
jg 0x48297d
jl 0x482971
mov eax, dword [esp + 0x30]
cmp ecx, eax
jae 0x482981
mov eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], esi
jmp 0x482981
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 0x4829af
cmp ecx, edx
je 0x4829af
push eax
push edx
push ecx
call fcn.004aee50
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.00451070
mov bl, al
add esp, 8
test bl, bl
mov byte [esp + 0x6c], bl
jl 0x483391
mov al, byte [esp + 0x13]
test al, al
je 0x482a08
mov cl, byte [esp + 0x19]
test cl, cl
jne 0x482a03
test bl, bl
mov byte [esp + 0x18], 1
jle 0x482a08
mov byte [esp + 0x18], 0
test al, al
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x19], 1
je 0x482a24
mov cl, byte [esp + 0x4b]
test cl, cl
jne 0x482a24
mov byte [esp + 0x13], 2
jmp 0x482a28
cmp al, 2
jne 0x482a4a
test bl, bl
jg 0x482a4a
push esi
push esi
push 4
push esi
push 3
push 0xc0000000
push edi
lea ecx, [esp + 0x30]
call fcn.004167bc
mov ebp, dword [esp + 0x14]
cmp ebp, esi
jne 0x482a64
push esi
push esi
push 3
push esi
push 3
push 0xc0000000
push edi
lea ecx, [esp + 0x30]
call fcn.004167bc
mov ebp, dword [esp + 0x14]
cmp byte [esp + 0x13], 2
jne 0x4833b4
mov esi, dword [esp + 0x4c]
test esi, esi
jle 0x483391
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x483391
mov ecx, dword [esp + 0x24]
test ecx, ecx
jl 0x482ac5
jg 0x482a99
mov eax, dword [esp + 0x20]
test eax, eax
jb 0x482ac5
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.004b0800
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
jmp 0x482afd
mov ecx, dword [esp + 0x78]
cmp ecx, 0xffffffff
jne 0x482ae5
mov edx, dword [esp + 0x7c]
mov eax, 0x7fffffff
cmp edx, eax
jne 0x482ae5
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jmp 0x482afd
mov ebx, dword [esp + 0x7c]
push ebx
mov eax, esi
cdq
push ecx
push edx
push eax
call fcn.004b08b0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x4a4]
push ecx
call fcn.0042063d
add esp, 4
push eax
lea ecx, [esp + 0x84]
call fcn.004127a5
test ebp, ebp
mov byte [esp + 0x49c], 6
je 0x482d95
mov bl, byte [esp + 0x43]
test bl, bl
mov dword [esp + 0x54], esi
je 0x482c8e
mov al, byte [esp + 0x6c]
test al, al
jg 0x482c8e
lea ecx, [esp + 0x14]
call fcn.004151b3
cmp bl, 1
jne 0x482b61
push 0
push 0
push edi
call fcn.00450bf0
add esp, 0xc
push 0
push 0
push 4
push 0
push 3
push 0xc0000000
push edi
lea ecx, [esp + 0x30]
call fcn.004167bc
mov ebp, dword [esp + 0x14]
test ebp, ebp
je 0x482d95
mov al, byte [esp + 0x42]
test al, al
je 0x482c8e
mov eax, dword [esp + 0x7c]
test eax, eax
jl 0x482c8e
jg 0x482bac
mov eax, dword [esp + 0x78]
test eax, eax
jb 0x482c8e
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.004b08b0
mov ecx, dword [esp + 0x24]
test ecx, ecx
jl 0x482be2
mov esi, dword [esp + 0x20]
jg 0x482bd4
test esi, esi
jb 0x482be2
cmp edx, ecx
jl 0x482be2
jg 0x482bde
cmp eax, esi
jbe 0x482be2
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 0x482c11
jg 0x482c07
cmp dword [esp + 0x78], 0xffffffff
jb 0x482c11
mov edi, 0xfffffdff
mov esi, 0x7fffffff
mov al, byte [esp + 0x18]
test al, al
jne 0x482c37
push 2
push 0
push 0
push ebp
call fcn.004403b0
add esp, 0x10
cmp edx, esi
jg 0x482c37
jl 0x482c32
cmp eax, edi
jae 0x482c37
mov byte [esp + 0x18], 1
push 0
push esi
push edi
push ebp
call fcn.004403b0
add esp, 0x10
cmp eax, edi
jne 0x482c6e
cmp edx, esi
jne 0x482c6e
cmp ebx, 0x7fffffff
jg 0x482c8e
jl 0x482c5d
cmp dword [esp + 0x78], 0xffffffff
jae 0x482c8e
lea ecx, [esp + 0x80]
call fcn.0043f290
jmp 0x483934
cmp ebx, 0x7fffffff
jg 0x482c8e
jl 0x482c7f
cmp dword [esp + 0x78], 0xffffffff
jae 0x482c8e
push 0
push 0
push 0
push ebp
call fcn.004403b0
add esp, 0x10
mov eax, dword [esp + 0x7c]
xor ebx, ebx
cmp eax, ebx
jl 0x482c5d
jg 0x482ca0
cmp dword [esp + 0x78], ebx
jbe 0x482c5d
cmp dword [esp + 0x24], ebx
jl 0x482c5d
jg 0x482cae
cmp dword [esp + 0x20], ebx
jbe 0x482c5d
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 0x482cd4
mov cl, byte [esp + 0x4b]
test cl, cl
mov byte [esp + 0x12], 1
je 0x482cd9
mov byte [esp + 0x12], 0
mov cl, byte [esp + 0x6c]
test cl, cl
mov esi, dword [esp + 0x5c]
jle 0x482cf0
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 0x482d31
jg 0x482d03
test esi, esi
jbe 0x482d31
push 0
push edi
push esi
push ebp
call fcn.004403b0
add esp, 0x10
cmp eax, esi
jne 0x482d18
cmp edx, edi
je 0x482d31
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x80]
mov esi, eax
call fcn.0043f290
jmp 0x483545
mov dword [esp + 0x5c], 0
mov al, byte [esp + 0x12]
test al, al
mov byte [esp + 0x49c], 7
je 0x482e0b
lea edx, [esp + 0x80]
push edx
call fcn.004511e0
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.004167bc
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jne 0x482da6
lea ecx, [esp + 0x5c]
call fcn.004167b7
lea ecx, [esp + 0x80]
call fcn.0043f290
jmp 0x4833fa
test esi, esi
mov esi, dword [esp + 0x28]
jle 0x482dbd
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 0x482e0b
jg 0x482dd4
test esi, esi
jbe 0x482e0b
push 0
push eax
push esi
push ecx
call fcn.004403b0
add esp, 0x10
cmp eax, esi
jne 0x482de9
cmp edx, edi
je 0x482e0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x5c]
mov esi, eax
call fcn.004167b7
lea ecx, [esp + 0x80]
call fcn.0043f290
jmp 0x483545
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x74]
cmp esi, ebx
je 0x482e19
add esi, ebx
add esi, 0x8000
lea ecx, [esi + 0x102a00]
push ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x34], esi
call fcn.00446080
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 0x482e91
lea eax, [ebx + 0x1ff]
and eax, 0xfffffe00
mov dword [esp + 0x50], eax
jmp 0x482e95
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x58]
test eax, eax
mov eax, dword [esp + 0x4c]
jle 0x482eab
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 0x482f1f
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 0x482f11
jl 0x482f0b
test ecx, ecx
jae 0x482f11
add esi, ecx
mov dword [esp + 0x68], esi
push esi
lea eax, [edi + ebp]
push eax
push ebp
call fcn.004aee50
add esp, 0xc
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x482fb0
mov ecx, dword [esp + 0x14]
push 1
push 0
push 0
push ecx
call fcn.004403b0
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.004aee50
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x7c]
push ecx
push edx
push ebp
call fcn.004aee50
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.004403b0
mov al, byte [esp + 0x6a]
add esp, 0x28
test al, al
je 0x482fb0
mov byte [esp + 0x13], 1
test esi, esi
mov byte [esp + 0x1b], 1
jg 0x4830a0
mov ebx, dword [esp + 0x24]
test ebx, ebx
mov edi, dword [esp + 0x20]
jl 0x4830a7
jg 0x482fd7
test edi, edi
jbe 0x4830a7
mov al, byte [esp + 0x1b]
test al, al
je 0x4830a7
mov al, byte [esp + 0x12]
test al, al
je 0x483052
mov ecx, dword [esp + 0x78]
mov eax, ecx
cdq
cmp edx, ebx
jg 0x483000
jl 0x482ffc
cmp eax, edi
ja 0x483000
mov eax, ecx
jmp 0x483002
mov eax, edi
mov ecx, dword [esp + 0x30]
lea edx, [eax + esi]
cmp edx, ecx
jle 0x483011
mov eax, ecx
sub eax, esi
mov ecx, dword [esp + 0x58]
test ecx, ecx
jle 0x483023
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 0x4830a7
cmp eax, edi
jbe 0x483080
mov eax, edi
jmp 0x48307c
mov ecx, dword [esp + 0x50]
mov eax, ecx
cdq
cmp edx, ebx
jg 0x483067
jl 0x483063
cmp eax, edi
ja 0x483067
mov eax, ecx
jmp 0x483069
mov eax, edi
mov ecx, dword [esp + 0x30]
lea edx, [esi + eax]
cmp edx, ecx
mov dword [esp + 0x54], eax
jbe 0x483080
mov eax, ecx
sub eax, esi
mov dword [esp + 0x54], eax
cmp edi, 0xffffffff
jne 0x48308d
cmp ebx, 0x7fffffff
je 0x48309a
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 0x483333
test esi, esi
jle 0x48335d
mov byte [esp + 0x1b], 0
mov ebx, ebp
mov eax, dword [esp + 0x50]
cmp eax, esi
jg 0x4830c0
mov esi, eax
mov cl, byte [esp + 0x6c]
xor eax, eax
test cl, cl
mov dword [esp + 0x4c], eax
jle 0x4830d5
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 0x483143
mov ecx, dword [esp + 0x14]
push 0
lea eax, [esp + 0x50]
push eax
push ebp
push ebx
push ecx
call fcn.00443670
add esp, 0x14
test eax, eax
jne 0x4832b1
mov al, byte [esp + 0x19]
test al, al
jne 0x48322a
call dword [sym.imp.KERNEL32.dll_GetLastError]
call fcn.0043f3e0
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x64]
call fcn.0043f290
lea ecx, [esp + 0x5c]
call fcn.004167b7
lea ecx, [esp + 0x80]
call fcn.0043f290
jmp 0x483930
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x4831f0
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.004403b0
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.004aee50
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.004403b0
mov al, byte [esp + 0x5e]
mov ebp, dword [esp + 0x44]
add esp, 0x1c
test al, al
je 0x4831f0
mov byte [esp + 0x13], 1
xor ecx, ecx
test esi, esi
mov dword [esp + 0x4c], ecx
jle 0x4832fe
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 0x4832fa
mov al, byte [esp + 0x19]
test al, al
je 0x483117
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.004151b3
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.004167bc
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x48328c
push 0
push 0
push 3
push 0
push 0
push 0xc0000000
push edi
lea ecx, [esp + 0x30]
call fcn.004167bc
mov eax, dword [esp + 0x14]
push 0
lea edx, [esp + 0x50]
push edx
push ebp
push ebx
push eax
call fcn.00443670
add esp, 0x14
test eax, eax
je 0x483111
cmp byte [esp + 0x1a], 2
je 0x4832fa
mov ecx, dword [esp + 0x4c]
cmp ecx, ebp
jbe 0x4832bf
mov ecx, ebp
mov dword [esp + 0x4c], ecx
mov al, byte [esp + 0x13]
test al, al
je 0x4832e2
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 0x483143
mov ecx, dword [esp + 0x4c]
mov al, byte [esp + 0x13]
test al, al
je 0x483321
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 0x4830b6
test esi, esi
jle 0x482fbd
cmp ebp, ebx
je 0x482fbd
push esi
push ebx
push ebp
call fcn.004aee50
add esp, 0xc
jmp 0x482fbd
xor eax, eax
jne 0x483117
test ebx, ebx
jl 0x483384
jg 0x48336f
test edi, edi
jbe 0x483384
cmp edi, 0xffffffff
jne 0x483117
cmp ebx, 0x7fffffff
jne 0x483117
mov dword [esp + 0x58], 0
jmp 0x483120
lea ecx, [esp + 0x14]
call fcn.004167b7
lea ecx, [esp + 0x84]
call fcn.00415ebc
lea ecx, [esp + 0x1c]
call fcn.0043f290
jmp 0x4839ae
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 0x483422
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x20]
push eax
push ecx
push edx
call fcn.00450f00
mov ebp, edx
add esp, 0xc
test ebp, ebp
mov dword [esp + 0x38], eax
jg 0x483495
jl 0x4833fa
test eax, eax
jae 0x483495
lea ecx, [esp + 0x14]
call fcn.004167b7
lea ecx, [esp + 0x84]
call fcn.00415ebc
lea ecx, [esp + 0x1c]
call fcn.0043f290
mov eax, 1
jmp 0x4839b3
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x48356a
test bl, bl
jne 0x48346f
push 2
push 0
push 0
push eax
call fcn.004403b0
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 0x4834a1
jl 0x483462
cmp edi, ecx
jae 0x4834a1
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4834a1
mov edx, dword [esp + 0x6c]
push edx
push eax
call fcn.004435c0
mov esi, edx
add esp, 8
test esi, esi
mov edi, eax
jg 0x48349d
jl 0x48348b
test edi, edi
jae 0x48349d
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x48349d
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x48356e
mov al, byte [esp + 0x41]
test al, al
je 0x4834c5
mov al, byte [esp + 0x6c]
test al, al
jne 0x4834c5
or edi, 0xffffffff
mov esi, 0x7fffffff
mov al, byte [esp + 0x6c]
test al, al
mov dword [esp + 0x44], 0
je 0x4834e0
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.004403b0
add esp, 0x10
test edx, edx
jg 0x4835c1
jl 0x483534
test eax, eax
jae 0x4835c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x74]
mov esi, eax
call fcn.0043f290
lea ecx, [esp + 0x14]
call fcn.004167b7
lea ecx, [esp + 0x84]
call fcn.00415ebc
lea ecx, [esp + 0x1c]
call fcn.0043f290
mov eax, esi
jmp 0x4839b3
mov ebx, dword [esp + 0x5c]
mov al, byte [esp + 0x6c]
test al, al
jne 0x4835ab
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x1c]
push ecx
push ebx
push edx
call fcn.00450bf0
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.004167bc
mov byte [esp + 0x41], 1
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4834ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x483545
mov al, byte [esp + 0x12]
test al, al
je 0x48360d
mov eax, dword [esp + 0x50]
cdq
cmp esi, edx
jl 0x4835dc
jg 0x4835d8
cmp edi, eax
jbe 0x4835dc
mov edi, eax
mov esi, edx
test esi, esi
jl 0x48391c
jg 0x4835ee
test edi, edi
jbe 0x48391c
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.00451a10
add esp, 0x18
jmp 0x48391c
mov ecx, dword [esp + 0x34]
test ecx, ecx
jl 0x48363b
mov eax, dword [esp + 0x30]
jg 0x48361f
test eax, eax
jb 0x48363b
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jg 0x48363f
jl 0x483631
mov edi, dword [esp + 0x28]
cmp eax, edi
jae 0x483643
mov edi, eax
mov dword [esp + 0x28], edi
mov ebx, ecx
jmp 0x483643
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 0x4836a9
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x80]
call fcn.004461b0
mov esi, dword [esp + 0x74]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, ebx
jl 0x483683
jg 0x483681
cmp eax, edi
jbe 0x483683
mov ecx, edi
test ecx, ecx
jle 0x48391c
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.00451a10
add esp, 0x18
jmp 0x48391c
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 0x48391c
jg 0x4836f0
cmp edi, eax
jbe 0x48391c
lea esp, [esp]
mov eax, dword [esp + 0x24]
test eax, eax
jg 0x48370c
jl 0x483702
mov eax, dword [esp + 0x20]
test eax, eax
ja 0x48370c
cmp word [esi], 0
je 0x48391c
mov eax, dword [esp + 0x50]
xor ebp, ebp
xor edi, edi
cmp eax, ebp
jle 0x48391c
lea esp, [esp]
cmp ebx, ebp
jl 0x4838d4
jg 0x483734
cmp dword [esp + 0x28], ebp
jbe 0x4838d4
cmp dword [esp + 0x24], ebp
jg 0x4837e3
jl 0x48374a
cmp dword [esp + 0x20], ebp
ja 0x4837e3
cmp word [esi], bp
je 0x4838d4
lea edx, [esp + 0x4a4]
push edx
call fcn.0043f2e0
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 0x4837a2
add ecx, 2
lea eax, [esp + 0x20]
mov dword [esp + 0x4a4], ecx
push eax
lea ecx, [esp + 0x4a8]
push ecx
call fcn.0044d230
mov ecx, dword [esp + 0x4ac]
add esp, 8
mov ax, word [ecx]
cmp ax, bp
je 0x483800
lea ebx, [ebx]
cmp ax, 0x30
jb 0x4837bc
cmp ax, 0x39
jbe 0x4837f9
mov dl, byte [esp + 0x12]
test dl, dl
je 0x4837d3
or eax, 0x20
cmp ax, 0x61
jb 0x4837d3
cmp ax, 0x7a
jbe 0x4837f7
mov ax, word [ecx + 2]
add ecx, 2
xor ebp, ebp
cmp ax, bp
jne 0x4837b0
jmp 0x4837f9
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
or eax, 0xffffffff
add edx, eax
adc ecx, eax
jmp 0x4838aa
xor ebp, ebp
mov dword [esp + 0x4a4], ecx
cmp word [ecx], 0x30
jne 0x483825
mov dx, word [ecx + 2]
or dx, 0x20
cmp dx, 0x78
jne 0x483825
add ecx, 4
mov byte [esp + 0x12], 1
mov dword [esp + 0x4a4], ecx
jmp 0x48382d
mov al, byte [esp + 0x12]
test al, al
je 0x483869
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.004470e0
mov esi, dword [esp + 0x4b0]
mov ax, word [esi]
add esp, 0xc
call fcn.00445b20
test al, al
jne 0x48388a
mov dl, byte [esp + 0x1b]
mov byte [esp + 0x12], dl
jmp 0x48388a
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x4a8]
push ecx
call fcn.00449a90
mov esi, dword [esp + 0x4ac]
add esp, 8
cmp eax, 1
jl 0x4838d4
cmp esi, dword [esp + 0x38]
je 0x4838d4
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 0x483720
cmp edi, ebp
jle 0x48391c
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.00451a10
add esp, 0x18
cmp ebx, ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x50], 0x200
jg 0x4836f0
jl 0x48391c
mov eax, dword [esp + 0x28]
test eax, eax
ja 0x4836f0
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [esp + 0x74]
call fcn.0043f290
mov ebp, dword [esp + 0x14]
mov al, byte [esp + 0x18]
test al, al
je 0x483943
push ebp
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test ebp, ebp
je 0x483953
cmp ebp, 0xffffffff
je 0x483953
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x84]
test eax, eax
je 0x483971
mov edx, dword [0x51927c]
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 0x483996
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x58]
jmp 0x4839b3
cmp edi, ebp
je 0x4839ae
add edi, 0xfffffff8
push edi
push ebp
mov ecx, dword [0x51927c]
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