Function at 0x4cfd60
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x4d0826
cmp dword [edi + 0x20], 0
je 0x4d0826
cmp dword [edi + 0x24], 0
je 0x4d0826
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x4d0826
cmp dword [eax], edi
jne 0x4d0826
mov eax, dword [eax + 4]
cmp eax, 0x2a
je 0x4cfdcb
cmp eax, 0x39
je 0x4cfdcb
cmp eax, 0x45
je 0x4cfdcb
cmp eax, 0x49
je 0x4cfdcb
cmp eax, 0x5b
je 0x4cfdcb
cmp eax, 0x67
je 0x4cfdcb
cmp eax, 0x71
je 0x4cfdcb
cmp eax, 0x29a
jne 0x4d0826
mov ebx, dword [ebp + 0xc]
cmp ebx, 5
ja 0x4d0826
cmp dword [edi + 0xc], 0
push esi
mov esi, dword [edi + 0x1c]
je 0x4d0813
cmp dword [edi + 4], 0
je 0x4cfdf4
cmp dword [edi], 0
je 0x4d0813
cmp dword [esi + 4], 0x29a
jne 0x4cfe06
cmp ebx, 4
jne 0x4d0813
cmp dword [edi + 0x10], 0
je 0x4cfe7b
cmp dword [esi + 0x14], 0
mov edx, dword [esi + 0x28]
mov dword [esi + 0x28], ebx
je 0x4cfe35
mov ecx, edi
call fcn.004cfd10
cmp dword [edi + 0x10], 0
jne 0x4cfe67
mov dword [esi + 0x28], 0xffffffff
pop esi
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + 4], 0
jne 0x4cfe67
xor eax, eax
mov ecx, 9
cmp edx, 4
cmovg eax, ecx
add edx, edx
sub edx, eax
xor ecx, ecx
cmp ebx, 4
mov eax, 9
cmovg ecx, eax
lea eax, [ebx + ebx]
sub eax, ecx
cmp eax, edx
jg 0x4cfe67
cmp ebx, 4
jne 0x4cfe7b
mov eax, dword [esi + 4]
cmp eax, 0x29a
jne 0x4cfe8e
cmp dword [edi + 4], 0
je 0x4cff5d
pop esi
mov dword [edi + 0x18], str.buffer_error
mov eax, 0xfffffffb
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x2a
jne 0x4cff5d
cmp dword [esi + 0x18], 0
jne 0x4cfea9
mov dword [esi + 4], 0x71
jmp 0x4cff5d
mov ecx, dword [esi + 0x30]
shl ecx, 0xc
sub ecx, 0x7800
cmp dword [esi + 0x88], 2
mov dword [ebp + 8], ecx
jge 0x4cfef1
mov eax, dword [esi + 0x84]
cmp eax, 2
jl 0x4cfef1
cmp eax, 6
jge 0x4cfedb
mov eax, 0x40
lea edx, [eax + 0x20]
jmp 0x4cfef6
jne 0x4cfee7
mov eax, 0x80
lea edx, [eax + 0x20]
jmp 0x4cfef6
mov eax, 0xc0
lea edx, [eax + 0x20]
jmp 0x4cfef6
xor eax, eax
lea edx, [eax + 0x20]
or ecx, eax
cmp dword [esi + 0x6c], 0
je 0x4cff03
mov ecx, edx
or ecx, dword [ebp + 8]
mov eax, 0x8421085
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 4
inc ecx
mov edx, ecx
shl edx, 5
sub edx, ecx
mov ecx, esi
call fcn.004cfce0
cmp dword [esi + 0x6c], 0
je 0x4cff3e
movzx edx, word [edi + 0x32]
mov ecx, esi
call fcn.004cfce0
movzx edx, word [edi + 0x30]
mov ecx, esi
call fcn.004cfce0
mov dword [edi + 0x30], 1
mov ecx, edi
mov dword [esi + 4], 0x71
call fcn.004cfd10
cmp dword [esi + 0x14], 0
jne 0x4cfe25
cmp dword [esi + 4], 0x39
jne 0x4d0176
mov dword [edi + 0x30], 0
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
mov byte [ecx + eax], 0x1f
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], 0x8b
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], 8
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov dword [esi + 0x14], edx
test eax, eax
jne 0x4d0043
mov eax, dword [esi + 8]
mov byte [edx + eax], 0
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], 0
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], 0
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], 0
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], 0
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x84]
inc edx
mov dword [esi + 0x14], edx
cmp eax, 9
jne 0x4cfffb
mov cl, 2
jmp 0x4d000f
cmp dword [esi + 0x88], 2
jge 0x4d000d
cmp eax, 2
jl 0x4d000d
xor cl, cl
jmp 0x4d000f
mov cl, 4
mov eax, dword [esi + 8]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
inc ecx
mov dword [esi + 0x14], ecx
mov byte [ecx + eax], 0xa
mov ecx, edi
inc dword [esi + 0x14]
mov dword [esi + 4], 0x71
call fcn.004cfd10
cmp dword [esi + 0x14], 0
jne 0x4cfe25
jmp 0x4d0176
mov ecx, dword [eax + 0x24]
mov eax, dword [eax + 0x2c]
neg ecx
sbb cl, cl
and cl, 0x10
neg eax
sbb al, al
and al, 2
add cl, al
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x1c]
neg eax
sbb al, al
and al, 8
add cl, al
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x10]
neg eax
sbb al, al
and al, 4
add cl, al
mov eax, dword [esi + 0x1c]
cmp dword [eax], 0
setne al
add cl, al
mov eax, dword [esi + 8]
mov byte [edx + eax], cl
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
movzx eax, byte [eax + 4]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
movzx eax, byte [eax + 5]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
movzx eax, byte [eax + 6]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
movzx eax, byte [eax + 7]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x84]
inc edx
mov dword [esi + 0x14], edx
cmp eax, 9
jne 0x4d00eb
mov cl, 2
jmp 0x4d00ff
cmp dword [esi + 0x88], 2
jge 0x4d00fd
cmp eax, 2
jl 0x4d00fd
xor cl, cl
jmp 0x4d00ff
mov cl, 4
mov eax, dword [esi + 8]
mov byte [edx + eax], cl
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
mov al, byte [eax + 0xc]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov dword [esi + 0x14], edx
cmp dword [eax + 0x10], 0
je 0x4d014d
mov ecx, dword [esi + 8]
movzx eax, byte [eax + 0x14]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
inc edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], edx
movzx eax, byte [eax + 0x15]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
inc edx
mov dword [esi + 0x14], edx
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x2c], 0
je 0x4d0168
push edx
push dword [esi + 8]
push dword [edi + 0x30]
call sym.winvnc.exe_crc32_z
add esp, 0xc
mov dword [edi + 0x30], eax
mov dword [esi + 0x20], 0
mov dword [esi + 4], 0x45
mov eax, dword [esi + 4]
cmp eax, 0x45
jne 0x4d02c7
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x10], 0
je 0x4d02be
movzx edx, word [eax + 0x14]
mov ecx, dword [esi + 0x14]
sub edx, dword [esi + 0x20]
mov ebx, dword [esi + 0xc]
mov dword [ebp - 4], ecx
mov dword [ebp + 8], edx
lea eax, [ecx + edx]
mov dword [ebp - 8], ecx
cmp eax, ebx
jbe 0x4d026d
mov eax, dword [esi + 0x1c]
sub ebx, ecx
push ebx
mov dword [ebp - 0xc], ebx
mov eax, dword [eax + 0x10]
add eax, dword [esi + 0x20]
push eax
mov eax, dword [esi + 8]
add eax, ecx
push eax
call fcn.005264b0
mov eax, dword [esi + 0x1c]
add esp, 0xc
mov edx, dword [esi + 0xc]
mov dword [esi + 0x14], edx
cmp dword [eax + 0x2c], 0
je 0x4d01fb
mov ecx, dword [ebp - 4]
cmp edx, ecx
jbe 0x4d01fb
mov eax, dword [esi + 8]
sub edx, ecx
push edx
add eax, ecx
push eax
push dword [edi + 0x30]
call sym.winvnc.exe_crc32_z
add esp, 0xc
mov dword [edi + 0x30], eax
add dword [esi + 0x20], ebx
mov ebx, dword [edi + 0x1c]
mov ecx, ebx
mov dword [ebp - 4], ebx
call fcn.004d3330
mov eax, dword [ebx + 0x14]
mov ebx, dword [edi + 0x10]
cmp eax, ebx
cmovbe ebx, eax
test ebx, ebx
je 0x4d0246
mov eax, dword [ebp - 4]
push ebx
push dword [eax + 0x10]
push dword [edi + 0xc]
call fcn.005264b0
mov ecx, dword [ebp - 4]
add esp, 0xc
add dword [edi + 0xc], ebx
add dword [ecx + 0x10], ebx
add dword [edi + 0x14], ebx
sub dword [edi + 0x10], ebx
sub dword [ecx + 0x14], ebx
jne 0x4d0246
mov eax, dword [ecx + 8]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 8], eax
test eax, eax
jne 0x4cfe25
mov edx, dword [ebp + 8]
xor ecx, ecx
sub edx, dword [ebp - 0xc]
mov ebx, dword [esi + 0xc]
mov dword [ebp - 4], eax
mov dword [ebp + 8], edx
cmp edx, ebx
ja 0x4d01b0
mov eax, dword [esi + 0x1c]
push edx
mov eax, dword [eax + 0x10]
add eax, dword [esi + 0x20]
push eax
mov eax, dword [esi + 8]
add eax, dword [ebp - 8]
push eax
call fcn.005264b0
mov edx, dword [esi + 0x14]
add esp, 0xc
mov eax, dword [esi + 0x1c]
add edx, dword [ebp + 8]
mov dword [esi + 0x14], edx
cmp dword [eax + 0x2c], 0
je 0x4d02b7
mov ecx, dword [ebp - 4]
cmp edx, ecx
jbe 0x4d02b7
mov eax, dword [esi + 8]
sub edx, ecx
push edx
add eax, ecx
push eax
push dword [edi + 0x30]
call sym.winvnc.exe_crc32_z
add esp, 0xc
mov dword [edi + 0x30], eax
mov dword [esi + 0x20], 0
mov dword [esi + 4], 0x49
jmp 0x4d02d0
cmp eax, 0x49
jne 0x4d03cb
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x1c], 0
je 0x4d03c2
mov ecx, dword [esi + 0x14]
mov ebx, ecx
mov dword [ebp + 8], ecx
cmp ebx, dword [esi + 0xc]
jne 0x4d0369
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x2c], 0
je 0x4d030e
cmp ebx, ecx
jbe 0x4d030e
mov eax, dword [esi + 8]
sub ebx, ecx
push ebx
add eax, ecx
push eax
push dword [edi + 0x30]
call sym.winvnc.exe_crc32_z
add esp, 0xc
mov dword [edi + 0x30], eax
mov ebx, dword [edi + 0x1c]
mov ecx, ebx
mov dword [ebp + 8], ebx
call fcn.004d3330
mov eax, dword [ebx + 0x14]
mov ebx, dword [edi + 0x10]
cmp eax, ebx
cmovbe ebx, eax
test ebx, ebx
je 0x4d0356
mov eax, dword [ebp + 8]
push ebx
push dword [eax + 0x10]
push dword [edi + 0xc]
call fcn.005264b0
mov ecx, dword [ebp + 8]
add esp, 0xc
add dword [edi + 0xc], ebx
add dword [ecx + 0x10], ebx
add dword [edi + 0x14], ebx
sub dword [edi + 0x10], ebx
sub dword [ecx + 0x14], ebx
jne 0x4d0356
mov eax, dword [ecx + 8]
mov dword [ecx + 0x10], eax
cmp dword [esi + 0x14], 0
jne 0x4cfe25
mov dword [ebp + 8], 0
xor ebx, ebx
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov eax, dword [eax + 0x1c]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 8]
mov byte [ebx + eax], dl
mov ebx, dword [esi + 0x14]
inc ebx
mov dword [esi + 0x14], ebx
test dl, dl
je 0x4d0394
mov ecx, dword [ebp + 8]
jmp 0x4d02e5
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x2c], 0
je 0x4d03bb
mov ecx, dword [ebp + 8]
cmp ebx, ecx
jbe 0x4d03bb
mov eax, dword [esi + 8]
sub ebx, ecx
push ebx
add eax, ecx
push eax
push dword [edi + 0x30]
call sym.winvnc.exe_crc32_z
add esp, 0xc
mov dword [edi + 0x30], eax
mov dword [esi + 0x20], 0
mov dword [esi + 4], 0x5b
jmp 0x4d03d4
cmp eax, 0x5b
jne 0x4d04d2
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x24], 0
je 0x4d04c6
mov ecx, dword [esi + 0x14]
mov ebx, ecx
mov dword [ebp + 8], ecx
nop dword [eax]
cmp ebx, dword [esi + 0xc]
jne 0x4d0474
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x2c], 0
je 0x4d0419
cmp ebx, ecx
jbe 0x4d0419
mov eax, dword [esi + 8]
sub ebx, ecx
push ebx
add eax, ecx
push eax
push dword [edi + 0x30]
call sym.winvnc.exe_crc32_z
add esp, 0xc
mov dword [edi + 0x30], eax
mov ebx, dword [edi + 0x1c]
mov ecx, ebx
mov dword [ebp + 8], ebx
call fcn.004d3330
mov eax, dword [ebx + 0x14]
mov ebx, dword [edi + 0x10]
cmp eax, ebx
cmovbe ebx, eax
test ebx, ebx
je 0x4d0461
mov eax, dword [ebp + 8]
push ebx
push dword [eax + 0x10]
push dword [edi + 0xc]
call fcn.005264b0
mov ecx, dword [ebp + 8]
add esp, 0xc
add dword [edi + 0xc], ebx
add dword [ecx + 0x10], ebx
add dword [edi + 0x14], ebx
sub dword [edi + 0x10], ebx
sub dword [ecx + 0x14], ebx
jne 0x4d0461
mov eax, dword [ecx + 8]
mov dword [ecx + 0x10], eax
cmp dword [esi + 0x14], 0
jne 0x4cfe25
mov dword [ebp + 8], 0
xor ebx, ebx
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov eax, dword [eax + 0x24]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 8]
mov byte [ebx + eax], dl
mov ebx, dword [esi + 0x14]
inc ebx
mov dword [esi + 0x14], ebx
test dl, dl
je 0x4d049f
mov ecx, dword [ebp + 8]
jmp 0x4d03f0
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x2c], 0
je 0x4d04c6
mov ecx, dword [ebp + 8]
cmp ebx, ecx
jbe 0x4d04c6
mov eax, dword [esi + 8]
sub ebx, ecx
push ebx
add eax, ecx
push eax
push dword [edi + 0x30]
call sym.winvnc.exe_crc32_z
add esp, 0xc
mov dword [edi + 0x30], eax
mov ebx, dword [ebp + 0xc]
mov dword [esi + 4], 0x67
jmp 0x4d04d7
cmp eax, 0x67
jne 0x4d053a
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x2c], 0
je 0x4d0522
mov edx, dword [esi + 0x14]
lea eax, [edx + 2]
cmp eax, dword [esi + 0xc]
jbe 0x4d04fd
mov ecx, edi
call fcn.004cfd10
mov edx, dword [esi + 0x14]
test edx, edx
jne 0x4cfe25
mov ecx, dword [esi + 8]
movzx eax, byte [edi + 0x30]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov dword [esi + 0x14], edx
movzx eax, byte [edi + 0x31]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
mov dword [edi + 0x30], 0
mov ecx, edi
mov dword [esi + 4], 0x71
call fcn.004cfd10
cmp dword [esi + 0x14], 0
jne 0x4cfe25
cmp dword [edi + 4], 0
jne 0x4d055b
cmp dword [esi + 0x74], 0
jne 0x4d055b
test ebx, ebx
je 0x4cfe2c
cmp dword [esi + 4], 0x29a
je 0x4d0715
mov eax, dword [esi + 0x84]
test eax, eax
jne 0x4d056e
push ebx
push esi
call fcn.004d0ce0
jmp 0x4d05a2
mov ecx, dword [esi + 0x88]
cmp ecx, 2
jne 0x4d0584
mov edx, ebx
mov ecx, esi
call fcn.004d1e50
jmp 0x4d05a5
cmp ecx, 3
jne 0x4d0594
mov edx, ebx
mov ecx, esi
call fcn.004d1ae0
jmp 0x4d05a5
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a2b18]
push ebx
push esi
call eax
add esp, 8
cmp eax, 2
je 0x4d05af
cmp eax, 3
jne 0x4d05b6
mov dword [esi + 4], 0x29a
test eax, eax
je 0x4d07f9
cmp eax, 2
je 0x4d07f9
cmp eax, 1
jne 0x4d0715
cmp ebx, eax
jne 0x4d06a8
mov ecx, dword [esi + 0x16bc]
lea ebx, [esi + 0x16b8]
mov eax, 2
shl ax, cl
or ax, word [ebx]
movzx edx, ax
cmp ecx, 0xd
jle 0x4d0641
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
mov word [ebx], dx
mov byte [ecx + eax], dl
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov al, byte [ebx + 1]
mov dword [esi + 0x14], edx
mov byte [edx + ecx], al
movzx eax, word [esi + 0x16bc]
add dword [esi + 0x16bc], 0xfffffff3
mov ecx, dword [esi + 0x16bc]
inc dword [esi + 0x14]
mov dword [ebp + 8], ecx
mov cl, 0x10
sub cl, al
mov eax, 2
shr ax, cl
movzx edx, ax
mov eax, dword [ebp + 8]
jmp 0x4d064a
lea eax, [ecx + 3]
mov dword [esi + 0x16bc], eax
mov ecx, ebx
mov word [ecx], dx
movzx ecx, dx
cmp eax, 9
jle 0x4d068e
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
mov word [ebx], dx
mov byte [ecx + eax], dl
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov al, byte [ebx + 1]
mov dword [esi + 0x14], edx
mov byte [edx + ecx], al
xor eax, eax
inc dword [esi + 0x14]
mov ecx, esi
add dword [esi + 0x16bc], 0xfffffff7
mov word [ebx], ax
call fcn.004d3330
mov ebx, dword [ebp + 0xc]
jmp 0x4d0704
add eax, 7
mov dword [esi + 0x16bc], eax
mov eax, ecx
mov ecx, esi
mov word [ebx], ax
call fcn.004d3330
mov ebx, dword [ebp + 0xc]
jmp 0x4d0704
cmp ebx, 5
je 0x4d0704
push 0
push 0
xor edx, edx
mov ecx, esi
call fcn.004d42b0
add esp, 8
cmp ebx, 3
jne 0x4d0704
mov eax, dword [esi + 0x44]
xor edx, edx
mov ecx, dword [esi + 0x4c]
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esi + 0x4c]
lea eax, [eax*2 - 2]
push eax
push edx
push dword [esi + 0x44]
call fcn.00526a30
add esp, 0xc
cmp dword [esi + 0x74], 0
jne 0x4d0704
mov dword [esi + 0x6c], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x16b4], 0
mov ecx, edi
call fcn.004cfd10
cmp dword [edi + 0x10], 0
je 0x4cfe25
cmp ebx, 4
jne 0x4cfe2c
mov eax, dword [esi + 0x18]
test eax, eax
jg 0x4d072f
pop esi
pop edi
lea eax, [ebx - 3]
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4d07c1
mov edx, dword [esi + 0x14]
movzx eax, byte [edi + 0x30]
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov dword [esi + 0x14], edx
movzx eax, byte [edi + 0x31]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov dword [esi + 0x14], edx
movzx eax, byte [edi + 0x32]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov dword [esi + 0x14], edx
movzx eax, byte [edi + 0x33]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov dword [esi + 0x14], edx
movzx eax, byte [edi + 8]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov dword [esi + 0x14], edx
movzx eax, byte [edi + 9]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov dword [esi + 0x14], edx
movzx eax, byte [edi + 0xa]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 8]
inc edx
mov dword [esi + 0x14], edx
movzx eax, byte [edi + 0xb]
mov byte [edx + ecx], al
inc dword [esi + 0x14]
jmp 0x4d07d7
movzx edx, word [edi + 0x32]
mov ecx, esi
call fcn.004cfce0
movzx edx, word [edi + 0x30]
mov ecx, esi
call fcn.004cfce0
mov ecx, edi
call fcn.004cfd10
mov eax, dword [esi + 0x18]
test eax, eax
jle 0x4d07ea
neg eax
mov dword [esi + 0x18], eax
xor eax, eax
cmp dword [esi + 0x14], eax
pop esi
pop edi
sete al
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0x10], 0
jne 0x4cfe2c
mov dword [esi + 0x28], 0xffffffff
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
pop esi
mov dword [edi + 0x18], str.stream_error
mov eax, 0xfffffffe
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret