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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5e6068
mov ebx, dword [esp + 0x60]
mov ebp, dword [ebx + 0x1c]
test ebp, ebp
je 0x5e6068
cmp dword [esp + 0x64], 5
jg 0x5e6068
mov eax, dword [esp + 0x64]
test eax, eax
js 0x5e6068
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x5e522b
mov esi, dword [ebx]
test esi, esi
je 0x5e5f60
mov eax, dword [ebp + 4]
cmp eax, 0x29a
je 0x5e5220
mov ebx, dword [esp + 0x60]
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x5e6111
mov dword [ebp], ebx
mov ebx, dword [ebp + 0x28]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x64]
mov dword [ebp + 0x28], ebx
cmp eax, 0x2a
je 0x5e54a0
cmp eax, 0x45
je 0x5e5586
mov edx, dword [ebp + 0x14]
cmp eax, 0x49
je 0x5e55d0
cmp eax, 0x5b
je 0x5e5ffc
cmp eax, 0x67
je 0x5e6004
test edx, edx
jne 0x5e5250
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx + 4]
test eax, eax
jne 0x5e59c0
mov ecx, dword [esp + 0x64]
add ecx, ecx
cmp dword [esp + 0x64], 5
sete al
and eax, 0xff
lea eax, [eax + eax*8]
sub ecx, eax
mov edx, dword [esp + 0x38]
add edx, edx
cmp dword [esp + 0x38], 5
setge al
and eax, 0xff
lea eax, [eax + eax*8]
sub edx, eax
cmp ecx, edx
jg 0x5e5132
cmp dword [esp + 0x64], 4
jne 0x5e6111
mov edx, dword [ebp + 4]
lea esi, [esi]
lea edi, [edi]
mov eax, dword [ebp + 0x74]
test eax, eax
jne 0x5e529d
mov edi, dword [esp + 0x64]
test edi, edi
je 0x5e52f3
cmp edx, 0x29a
jne 0x5e529d
lea esi, [esi]
lea edi, [edi]
cmp dword [esp + 0x64], 4
jne 0x5e52f3
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x5e6578
cmp eax, 2
je 0x5e64a0
mov ebx, dword [esp + 0x60]
mov edx, dword [ebx + 0x30]
mov ecx, edx
shr ecx, 0x10
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
shr edx, 0x18
mov byte [ebx + eax], dl
mov edx, dword [ebp + 8]
mov byte [edx + eax + 1], cl
mov ebx, dword [esp + 0x60]
mov ebx, dword [ebx + 0x30]
movzx edx, bx
mov ecx, dword [ebp + 8]
mov ebx, edx
shr ebx, 8
mov byte [ecx + eax + 2], bl
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 3], dl
add eax, 4
mov dword [ebp + 0x14], eax
mov esi, dword [esp + 0x60]
mov ebx, dword [esi + 0x1c]
mov dword [esp], ebx
call fcn.005eac80
mov edx, dword [ebx + 0x14]
mov eax, dword [esi + 0x10]
cmp eax, edx
ja 0x5e616f
test eax, eax
jne 0x5e6218
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x5e5202
neg eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x14]
test eax, eax
sete al
and eax, 0xff
jmp 0x5e52f5
cmp dword [esp + 0x64], 4
je 0x5e508c
mov eax, dword [str.stream_error]
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0x18], eax
mov eax, 0xfffffffe
jmp 0x5e52f5
mov edi, dword [esp + 0x60]
mov ebx, dword [edi + 0x1c]
mov dword [esp], ebx
call fcn.005eac80
mov ecx, dword [ebx + 0x14]
mov edx, dword [edi + 0x10]
mov eax, edx
cmp edx, ecx
ja 0x5e58a0
test eax, eax
jne 0x5e58aa
test edx, edx
je 0x5e5490
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx + 4]
mov edx, dword [ebp + 4]
cmp edx, 0x29a
je 0x5e59cf
test eax, eax
je 0x5e5140
mov eax, dword [ebp + 0x88]
cmp eax, 2
je 0x5e5776
cmp eax, 3
je 0x5e5b20
mov eax, dword [ebp + 0x84]
lea eax, [eax + eax*2]
mov ebx, dword [esp + 0x64]
mov dword [esp + 4], ebx
mov dword [esp], ebp
call dword [eax*4 + 0x7d7688]
lea edx, [eax - 2]
cmp edx, 1
jbe 0x5e5370
test eax, eax
jne 0x5e5377
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x5e5490
xor eax, eax
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x6c]
sub eax, edx
test edx, edx
js 0x5e66a4
add edx, dword [ebp + 0x38]
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ebp
call fcn.005eae50
mov eax, dword [ebp + 0x6c]
mov dword [ebp + 0x5c], eax
mov edx, dword [ebp]
mov ebx, dword [edx + 0x1c]
mov dword [esp], ebx
mov dword [esp + 0x24], edx
call fcn.005eac80
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x10]
cmp eax, ecx
jbe 0x5e5350
mov eax, ecx
test eax, eax
jne 0x5e658c
mov eax, dword [ebp]
cmp dword [eax + 0x10], 1
sbb eax, eax
add eax, 3
lea esi, [esi]
lea edi, [edi]
mov dword [ebp + 4], 0x29a
cmp eax, 2
je 0x5e52e4
dec eax
jne 0x5e5170
cmp dword [esp + 0x64], 1
je 0x5e66fd
cmp dword [esp + 0x64], 5
je 0x5e540e
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.005eab20
cmp dword [esp + 0x64], 3
jne 0x5e540e
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x4c]
mov word [edi + eax*2 - 2], 0
lea edx, [eax + eax - 2]
cmp edx, 4
jae 0x5e69a8
test dl, 2
je 0x5e53e7
mov word [edi], 0
add edi, 2
and edx, 1
je 0x5e53ef
mov byte [edi], 0
mov eax, dword [ebp + 0x74]
test eax, eax
jne 0x5e540e
mov dword [ebp + 0x6c], 0
mov dword [ebp + 0x5c], 0
mov dword [ebp + 0x16b4], 0
mov esi, dword [esp + 0x60]
mov ebx, dword [esi + 0x1c]
mov dword [esp], ebx
call fcn.005eac80
mov ecx, dword [ebx + 0x14]
mov edx, dword [esi + 0x10]
mov eax, edx
cmp edx, ecx
jbe 0x5e542b
mov eax, ecx
test eax, eax
je 0x5e5487
mov edx, eax
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0xc]
mov esi, dword [ebx + 0x10]
cmp eax, 4
jae 0x5e66ab
xor ecx, ecx
test dl, 2
je 0x5e5456
mov cx, word [esi]
mov word [edi], cx
mov ecx, 2
and edx, 1
je 0x5e5461
mov dl, byte [esi + ecx]
mov byte [edi + ecx], dl
mov ecx, dword [esp + 0x60]
add dword [ecx + 0xc], eax
add dword [ebx + 0x10], eax
add dword [ecx + 0x14], eax
sub dword [ecx + 0x10], eax
sub dword [ebx + 0x14], eax
jne 0x5e66cf
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov ebx, dword [esp + 0x60]
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x5e5170
nop
mov dword [ebp + 0x28], 0xffffffff
jmp 0x5e52f3
cmp dword [ebp + 0x18], 2
je 0x5e62e0
mov eax, dword [ebp + 0x30]
shl eax, 0xc
sub eax, 0x7800
cmp dword [ebp + 0x88], 1
jle 0x5e5990
xor ecx, ecx
or ecx, eax
mov ebx, dword [ebp + 0x6c]
test ebx, ebx
je 0x5e54d0
or ecx, 0x20
mov edx, 0x8421085
mov eax, ecx
mul edx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
mov edx, eax
shl edx, 5
sub edx, eax
add edx, 0x1f
mov dword [ebp + 4], 0x71
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov ebx, edx
shr ebx, 8
mov byte [ecx + eax], bl
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 1], dl
lea edx, [eax + 2]
mov dword [ebp + 0x14], edx
mov edx, dword [ebp + 0x6c]
test edx, edx
je 0x5e5557
mov ebx, dword [esp + 0x60]
mov ecx, dword [ebx + 0x30]
mov ebx, ecx
shr ebx, 0x10
mov esi, dword [ebp + 8]
shr ecx, 0x18
mov byte [esi + eax + 2], cl
mov edx, dword [ebp + 8]
mov byte [edx + eax + 3], bl
mov ebx, dword [esp + 0x60]
mov ebx, dword [ebx + 0x30]
movzx edx, bx
mov ecx, dword [ebp + 8]
mov ebx, edx
shr ebx, 8
mov byte [ecx + eax + 4], bl
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 5], dl
add eax, 6
mov dword [ebp + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.005e7ae0
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0x30], eax
mov eax, dword [ebp + 4]
cmp eax, 0x45
jne 0x5e50be
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x5e628e
mov ebx, dword [ebp + 0x20]
mov ecx, ebx
movzx esi, word [eax + 0x14]
mov edi, edx
cmp esi, ebx
ja 0x5e5640
mov edx, dword [ebp + 0x14]
lea esi, [esi]
cmp ecx, dword [eax + 0x14]
je 0x5e58fe
mov eax, dword [ebp + 4]
cmp eax, 0x49
jne 0x5e50ca
lea esi, [esi]
lea edi, [edi]
mov eax, dword [ebp + 0x1c]
jmp 0x5e590c
mov esi, dword [eax + 0x2c]
test esi, esi
je 0x5e55e7
cmp edx, edi
ja 0x5e5f30
mov esi, dword [esp + 0x60]
mov ebx, dword [esi + 0x1c]
mov dword [esp], ebx
call fcn.005eac80
mov edx, dword [ebx + 0x14]
mov eax, dword [esi + 0x10]
cmp eax, edx
jbe 0x5e5602
mov eax, edx
test eax, eax
jne 0x5e5650
mov edx, dword [ebp + 0x14]
mov edi, edx
cmp edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x1c]
je 0x5e56d8
mov ebx, dword [ebp + 0x20]
mov eax, dword [eax + 0x10]
mov cl, byte [eax + ebx]
mov eax, dword [ebp + 8]
mov byte [eax + edx], cl
inc edx
mov dword [ebp + 0x14], edx
mov ecx, dword [ebp + 0x20]
lea ebx, [ecx + 1]
mov ecx, ebx
mov dword [ebp + 0x20], ebx
mov eax, dword [ebp + 0x1c]
movzx esi, word [eax + 0x14]
cmp esi, ebx
jbe 0x5e56a0
cmp dword [ebp + 0xc], edx
jne 0x5e561a
jmp 0x5e55d8
mov edi, dword [esp + 0x60]
mov edx, dword [edi + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x34], eax
mov edi, edx
mov esi, ecx
cmp eax, 4
jae 0x5e5e20
xor edx, edx
test byte [esp + 0x34], 2
jne 0x5e56f0
test byte [esp + 0x34], 1
jne 0x5e56e0
mov esi, dword [esp + 0x60]
add dword [esi + 0xc], eax
add dword [ebx + 0x10], eax
add dword [esi + 0x14], eax
sub dword [esi + 0x10], eax
sub dword [ebx + 0x14], eax
jne 0x5e5606
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
jmp 0x5e5606
mov ebx, dword [eax + 0x2c]
test ebx, ebx
je 0x5e55b0
cmp edi, edx
jae 0x5e55b0
sub edx, edi
mov dword [esp + 8], edx
add edi, dword [ebp + 8]
mov dword [esp + 4], edi
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.005e2790
mov dword [ebx + 0x30], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x20]
jmp 0x5e55b0
mov cl, byte [esi + edx]
mov byte [edi + edx], cl
jmp 0x5e567b
mov dx, word [esi]
mov word [edi], dx
mov edx, 2
test byte [esp + 0x34], 1
je 0x5e567b
jmp 0x5e56e0
mov eax, dword [ebp + 0x5c]
sub ecx, eax
test eax, eax
js 0x5e6072
add eax, dword [ebp + 0x38]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.005eae50
mov eax, dword [ebp + 0x6c]
mov dword [ebp + 0x5c], eax
mov ebx, dword [ebp]
mov edx, dword [ebx + 0x1c]
mov dword [esp], edx
mov dword [esp + 0x24], edx
call fcn.005eac80
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x14]
mov eax, dword [ebx + 0x10]
cmp eax, ecx
jbe 0x5e5760
mov eax, ecx
test eax, eax
jne 0x5e600c
mov eax, dword [ebp]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x5e52e4
mov edx, dword [ebp + 0x74]
jmp 0x5e57dd
mov dword [ebp + 0x60], 0
mov edx, dword [ebp + 0x38]
mov eax, dword [ebp + 0x6c]
mov dl, byte [edx + eax]
mov eax, dword [ebp + 0x16a0]
mov ecx, dword [ebp + 0x16a4]
mov word [ecx + eax*2], 0
mov ecx, dword [ebp + 0x1698]
mov byte [ecx + eax], dl
inc eax
mov dword [ebp + 0x16a0], eax
and edx, 0xff
inc word [ebp + edx*4 + 0x94]
mov ebx, dword [ebp + 0x169c]
dec ebx
mov edx, dword [ebp + 0x74]
dec edx
mov dword [ebp + 0x74], edx
mov ecx, dword [ebp + 0x6c]
inc ecx
mov dword [ebp + 0x6c], ecx
cmp eax, ebx
je 0x5e5710
test edx, edx
jne 0x5e5780
mov eax, ebp
call fcn.005e2dd0
mov esi, dword [ebp + 0x74]
test esi, esi
jne 0x5e5780
mov ebx, dword [esp + 0x64]
test ebx, ebx
je 0x5e52e4
mov dword [ebp + 0x16b4], 0
cmp dword [esp + 0x64], 4
je 0x5e52fd
mov eax, dword [ebp + 0x16a0]
test eax, eax
je 0x5e5387
mov edx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x6c]
sub eax, edx
test edx, edx
js 0x5e6191
add edx, dword [ebp + 0x38]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ebp
call fcn.005eae50
mov eax, dword [ebp + 0x6c]
mov dword [ebp + 0x5c], eax
mov edx, dword [ebp]
mov ebx, dword [edx + 0x1c]
mov dword [esp], ebx
mov dword [esp + 0x24], edx
call fcn.005eac80
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x10]
cmp eax, ecx
jbe 0x5e5871
mov eax, ecx
test eax, eax
jne 0x5e6513
mov eax, dword [ebp]
mov eax, dword [eax + 0x10]
test eax, eax
setne al
and eax, 0xff
lea edx, [eax - 2]
jmp 0x5e52d3
mov eax, ecx
test eax, eax
je 0x5e5277
mov edx, eax
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0xc]
mov esi, dword [ebx + 0x10]
cmp eax, 4
jae 0x5e61f4
xor ecx, ecx
test dl, 2
jne 0x5e6181
and edx, 1
jne 0x5e6176
mov ecx, dword [esp + 0x60]
add dword [ecx + 0xc], eax
add dword [ebx + 0x10], eax
add dword [ecx + 0x14], eax
sub dword [ecx + 0x10], eax
sub dword [ebx + 0x14], eax
jne 0x5e626e
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov ebx, dword [esp + 0x60]
mov edx, dword [ebx + 0x10]
jmp 0x5e5277
mov dword [ebp + 0x20], 0
mov dword [ebp + 4], 0x49
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x5e6276
mov ecx, edx
mov ebx, dword [esp + 0x60]
jmp 0x5e5942
mov esi, dword [ebp + 0x20]
mov eax, dword [eax + 0x1c]
mov al, byte [eax + esi]
inc esi
mov dword [ebp + 0x20], esi
mov esi, dword [ebp + 8]
mov byte [esi + ecx], al
inc ecx
mov dword [ebp + 0x14], ecx
test al, al
mov eax, dword [ebp + 0x1c]
je 0x5e59f0
cmp dword [ebp + 0xc], ecx
jne 0x5e5920
mov esi, dword [eax + 0x2c]
test esi, esi
je 0x5e5956
cmp edx, ecx
jb 0x5e60d1
mov edx, dword [ebx + 0x1c]
mov dword [esp], edx
mov dword [esp + 0x24], edx
call fcn.005eac80
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x14]
mov eax, dword [ebx + 0x10]
cmp eax, ecx
jbe 0x5e5975
mov eax, ecx
test eax, eax
jne 0x5e5ec0
mov edx, dword [ebp + 0x14]
cmp edx, dword [ebp + 0xc]
je 0x5e6a0c
mov eax, dword [ebp + 0x1c]
mov ecx, edx
jmp 0x5e5920
mov edx, dword [ebp + 0x84]
cmp edx, 1
jle 0x5e54c2
cmp edx, 5
jle 0x5e6582
cmp edx, 6
je 0x5e686a
mov ecx, 0xc0
jmp 0x5e54c4
mov edx, dword [ebp + 4]
cmp edx, 0x29a
jne 0x5e529d
test eax, eax
je 0x5e5140
mov eax, dword [str.buffer_error]
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0x18], eax
mov eax, 0xfffffffb
jmp 0x5e52f5
mov ebx, dword [eax + 0x2c]
test ebx, ebx
je 0x5e59ff
cmp edx, ecx
jb 0x5e6460
mov dword [ebp + 0x20], 0
mov dword [ebp + 4], 0x5b
mov edx, dword [ebp + 0x14]
mov edi, dword [eax + 0x24]
test edi, edi
je 0x5e6282
mov ecx, edx
mov ebx, dword [esp + 0x60]
jmp 0x5e5a4e
mov esi, dword [ebp + 0x20]
mov eax, dword [eax + 0x24]
mov al, byte [eax + esi]
inc esi
mov dword [ebp + 0x20], esi
mov esi, dword [ebp + 8]
mov byte [esi + edx], al
inc edx
mov dword [ebp + 0x14], edx
test al, al
mov eax, dword [ebp + 0x1c]
je 0x5e5aa0
cmp dword [ebp + 0xc], edx
jne 0x5e5a30
mov esi, dword [eax + 0x2c]
test esi, esi
je 0x5e5a62
cmp ecx, edx
jb 0x5e60f1
mov edx, dword [ebx + 0x1c]
mov dword [esp], edx
mov dword [esp + 0x24], edx
call fcn.005eac80
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x14]
mov eax, dword [ebx + 0x10]
cmp eax, ecx
jbe 0x5e5a81
mov eax, ecx
test eax, eax
jne 0x5e5e50
mov ecx, dword [ebp + 0x14]
cmp ecx, dword [ebp + 0xc]
je 0x5e6a02
mov eax, dword [ebp + 0x1c]
mov edx, ecx
jmp 0x5e5a30
mov ebx, dword [eax + 0x2c]
test ebx, ebx
je 0x5e5aaf
cmp ecx, edx
jb 0x5e6439
mov dword [ebp + 4], 0x67
mov edx, dword [ebp + 0x14]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x5e5ff0
lea eax, [edx + 2]
cmp eax, dword [ebp + 0xc]
ja 0x5e629a
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x60]
mov ecx, dword [esi + 0x30]
mov byte [ebx + edx], cl
mov ebx, dword [ebp + 8]
mov ecx, dword [esi + 0x30]
shr ecx, 8
mov byte [ebx + edx + 1], cl
mov dword [ebp + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.005e2790
mov dword [esi + 0x30], eax
mov dword [ebp + 4], 0x71
mov edx, dword [ebp + 0x14]
jmp 0x5e50dc
xor ebx, ebx
mov bl, byte [0x7d7a80]
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x20], ebx
jmp 0x5e5bc3
mov dword [ebp + 0x60], 0
mov edx, dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x38]
test edx, edx
je 0x5e5b68
lea esi, [ecx + edx - 1]
xor ebx, ebx
mov bl, byte [esi]
mov dword [esp + 0x34], ebx
mov bl, byte [esi]
cmp byte [esi + 1], bl
je 0x5e5c20
mov dl, byte [ecx + edx]
mov eax, dword [ebp + 0x16a0]
mov ecx, dword [ebp + 0x16a4]
mov word [ecx + eax*2], 0
mov ecx, dword [ebp + 0x1698]
mov byte [ecx + eax], dl
inc eax
mov dword [ebp + 0x16a0], eax
and edx, 0xff
inc word [ebp + edx*4 + 0x94]
mov edx, dword [ebp + 0x169c]
dec edx
cmp eax, edx
sete cl
and ecx, 0xff
mov eax, dword [ebp + 0x74]
dec eax
mov dword [ebp + 0x74], eax
mov edx, dword [ebp + 0x6c]
inc edx
mov dword [ebp + 0x6c], edx
test ecx, ecx
jne 0x5e5da0
cmp eax, 0x102
ja 0x5e5b40
mov eax, ebp
call fcn.005e2dd0
mov eax, dword [ebp + 0x74]
cmp eax, 0x102
ja 0x5e5b40
mov edx, dword [esp + 0x64]
test edx, edx
je 0x5e52e4
test eax, eax
je 0x5e57fb
mov dword [ebp + 0x60], 0
cmp eax, 2
ja 0x5e5b47
mov ecx, dword [ebp + 0x38]
mov edx, dword [ebp + 0x6c]
jmp 0x5e5b68
mov bl, byte [esi + 2]
and ebx, 0xff
cmp dword [esp + 0x34], ebx
jne 0x5e5b68
mov bl, byte [esi + 3]
and ebx, 0xff
cmp dword [esp + 0x34], ebx
jne 0x5e5b68
lea edi, [esi + 3]
lea esi, [ecx + edx + 0x102]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebp
mov esi, dword [esp + 0x34]
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x20]
jmp 0x5e5cec
mov al, byte [edi + 2]
and eax, 0xff
cmp esi, eax
jne 0x5e67c3
mov al, byte [edi + 3]
and eax, 0xff
cmp esi, eax
jne 0x5e67af
mov al, byte [edi + 4]
and eax, 0xff
cmp esi, eax
jne 0x5e6773
mov al, byte [edi + 5]
and eax, 0xff
cmp esi, eax
jne 0x5e675f
mov al, byte [edi + 6]
and eax, 0xff
cmp esi, eax
jne 0x5e679b
mov al, byte [edi + 7]
and eax, 0xff
cmp esi, eax
jne 0x5e6787
add edi, 8
mov al, byte [edi]
and eax, 0xff
cmp esi, eax
jne 0x5e6693
cmp edi, dword [esp + 0x38]
jae 0x5e6693
mov al, byte [edi + 1]
and eax, 0xff
cmp esi, eax
je 0x5e5c70
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
inc edi
sub edi, dword [esp + 0x38]
lea esi, [edi + 0x102]
mov dword [ebp + 0x60], esi
cmp esi, eax
jbe 0x5e6487
mov dword [ebp + 0x60], eax
mov esi, eax
lea edx, [esi - 3]
mov eax, dword [ebp + 0x16a0]
mov ecx, dword [ebp + 0x16a4]
mov word [ecx + eax*2], 1
mov ecx, dword [ebp + 0x1698]
mov byte [ecx + eax], dl
inc eax
mov dword [ebp + 0x16a0], eax
and edx, 0xff
mov dl, byte [edx + 0x7d7980]
and edx, 0xff
inc word [ebp + edx*4 + 0x498]
mov edx, dword [esp + 0x20]
inc word [ebp + edx*4 + 0x988]
mov edx, dword [ebp + 0x169c]
dec edx
cmp eax, edx
sete cl
and ecx, 0xff
mov edx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x74]
sub eax, edx
mov dword [ebp + 0x74], eax
add edx, dword [ebp + 0x6c]
mov dword [ebp + 0x6c], edx
mov dword [ebp + 0x60], 0
test ecx, ecx
je 0x5e5bc3
mov ebx, dword [esp + 0x20]
mov eax, dword [ebp + 0x5c]
sub edx, eax
test eax, eax
js 0x5e6061
add eax, dword [ebp + 0x38]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.005eae50
mov eax, dword [ebp + 0x6c]
mov dword [ebp + 0x5c], eax
mov eax, dword [ebp]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x34], edx
mov dword [esp], edx
mov dword [esp + 0x24], eax
call fcn.005eac80
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x14]
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x10]
cmp edx, ecx
jbe 0x5e5dfc
mov edx, ecx
test edx, edx
jne 0x5e5f70
mov eax, dword [ebp]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x5e5b28
jmp 0x5e52e4
test dl, 1
jne 0x5e662b
test edi, 2
jne 0x5e65f1
mov ecx, dword [esp + 0x34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x5e566b
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x3c], esi
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], esi
mov esi, ecx
cmp eax, 4
jae 0x5e60a5
xor edi, edi
test byte [esp + 0x34], 2
je 0x5e5e85
mov cx, word [esi]
mov edi, dword [esp + 0x20]
mov word [edi], cx
mov edi, 2
test byte [esp + 0x34], 1
je 0x5e5e96
mov cl, byte [esi + edi]
mov esi, dword [esp + 0x20]
mov byte [esi + edi], cl
add dword [ebx + 0xc], eax
add dword [edx + 0x10], eax
add dword [ebx + 0x14], eax
sub dword [ebx + 0x10], eax
sub dword [edx + 0x14], eax
jne 0x5e5a89
mov eax, dword [edx + 8]
mov dword [edx + 0x10], eax
jmp 0x5e5a89
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x3c], esi
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], esi
mov esi, ecx
cmp eax, 4
jae 0x5e6079
xor edi, edi
test byte [esp + 0x34], 2
je 0x5e5ef5
mov cx, word [esi]
mov edi, dword [esp + 0x20]
mov word [edi], cx
mov edi, 2
test byte [esp + 0x34], 1
je 0x5e5f06
mov cl, byte [esi + edi]
mov esi, dword [esp + 0x20]
mov byte [esi + edi], cl
add dword [ebx + 0xc], eax
add dword [edx + 0x10], eax
add dword [ebx + 0x14], eax
sub dword [ebx + 0x10], eax
sub dword [edx + 0x14], eax
jne 0x5e597d
mov eax, dword [edx + 8]
mov dword [edx + 0x10], eax
jmp 0x5e597d
sub edx, edi
mov dword [esp + 8], edx
add edi, dword [ebp + 8]
mov dword [esp + 4], edi
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.005e2790
mov dword [ebx + 0x30], eax
jmp 0x5e55e7
mov ebx, dword [ebx + 4]
test ebx, ebx
je 0x5e507e
jmp 0x5e522b
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x3c], ecx
mov esi, dword [esp + 0x34]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x38], edx
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x20], edi
mov esi, ecx
cmp edx, 4
jae 0x5e6123
xor edi, edi
test byte [esp + 0x38], 2
je 0x5e5fad
mov cx, word [esi]
mov edi, dword [esp + 0x20]
mov word [edi], cx
mov edi, 2
test byte [esp + 0x38], 1
je 0x5e5fbe
mov cl, byte [esi + edi]
mov esi, dword [esp + 0x20]
mov byte [esi + edi], cl
add dword [eax + 0xc], edx
mov edi, dword [esp + 0x34]
add dword [edi + 0x10], edx
add dword [eax + 0x14], edx
sub dword [eax + 0x10], edx
sub dword [edi + 0x14], edx
jne 0x5e5e04
mov edx, dword [edi + 8]
mov dword [edi + 0x10], edx
jmp 0x5e5e04
mov dword [ebp + 4], 0x71
jmp 0x5e50dc
mov eax, dword [ebp + 0x1c]
jmp 0x5e5a10
mov eax, dword [ebp + 0x1c]
jmp 0x5e5ab9
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x38], esi
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], esi
mov esi, ecx
cmp eax, 4
jae 0x5e61c8
xor edi, edi
test byte [esp + 0x34], 2
jne 0x5e615b
test byte [esp + 0x34], 1
jne 0x5e614c
add dword [ebx + 0xc], eax
add dword [edx + 0x10], eax
add dword [ebx + 0x14], eax
sub dword [ebx + 0x10], eax
sub dword [edx + 0x14], eax
jne 0x5e5768
mov eax, dword [edx + 8]
mov dword [edx + 0x10], eax
jmp 0x5e5768
xor eax, eax
jmp 0x5e5db4
mov eax, 0xfffffffe
jmp 0x5e52f5
xor eax, eax
jmp 0x5e5720
test byte [esp + 0x20], 1
jne 0x5e68c9
test byte [esp + 0x20], 2
jne 0x5e68ab
mov ecx, dword [esp + 0x34]
shr ecx, 2
mov edi, dword [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], edi
jmp 0x5e5edd
test byte [esp + 0x20], 1
jne 0x5e6892
test byte [esp + 0x20], 2
jne 0x5e6874
mov ecx, dword [esp + 0x34]
shr ecx, 2
mov edi, dword [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], edi
jmp 0x5e5e6d
sub ecx, edx
mov dword [esp + 8], ecx
add edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.005e2790
mov dword [ebx + 0x30], eax
jmp 0x5e5956
sub edx, ecx
mov dword [esp + 8], edx
add ecx, dword [ebp + 8]
mov dword [esp + 4], ecx
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.005e2790
mov dword [ebx + 0x30], eax
jmp 0x5e5a62
mov eax, dword [str.buffer_error]
mov dword [ebx + 0x18], eax
mov eax, 0xfffffffb
jmp 0x5e52f5
test edi, 1
jne 0x5e61b3
test byte [esp + 0x20], 2
jne 0x5e6198
mov ecx, dword [esp + 0x38]
shr ecx, 2
mov edi, dword [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], edi
jmp 0x5e5f95
mov cl, byte [esi + edi]
mov esi, dword [esp + 0x3c]
mov byte [esi + edi], cl
jmp 0x5e6041
mov cx, word [esi]
mov edi, dword [esp + 0x3c]
mov word [edi], cx
mov edi, 2
jmp 0x5e6036
mov eax, edx
jmp 0x5e51ee
mov dl, byte [esi + ecx]
mov byte [edi + ecx], dl
jmp 0x5e58d3
mov cx, word [esi]
mov word [edi], cx
mov ecx, 2
jmp 0x5e58ca
xor edx, edx
jmp 0x5e5831
mov cx, word [esi]
mov edi, dword [esp + 0x20]
mov word [edi], cx
add edi, 2
mov dword [esp + 0x20], edi
add esi, 2
sub dword [esp + 0x38], 2
jmp 0x5e6136
mov cl, byte [ecx]
mov byte [edi], cl
inc dword [esp + 0x20]
inc esi
lea ecx, [edx - 1]
mov dword [esp + 0x38], ecx
jmp 0x5e612f
test byte [esp + 0x3c], 1
jne 0x5e6900
test byte [esp + 0x3c], 2
jne 0x5e68e2
mov ecx, dword [esp + 0x34]
shr ecx, 2
mov edi, dword [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x3c], edi
jmp 0x5e6029
test edi, 1
jne 0x5e692d
test edi, 2
jne 0x5e6919
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x5e58bf
mov edx, eax
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0xc]
mov esi, dword [ebx + 0x10]
cmp eax, 4
jae 0x5e6607
xor ecx, ecx
test dl, 2
je 0x5e623f
mov cx, word [esi]
mov word [edi], cx
mov ecx, 2
and edx, 1
je 0x5e624a
mov dl, byte [esi + ecx]
mov byte [edi + ecx], dl
mov ecx, dword [esp + 0x60]
add dword [ecx + 0xc], eax
add dword [ebx + 0x10], eax
add dword [ecx + 0x14], eax
sub dword [ecx + 0x10], eax
sub dword [ebx + 0x14], eax
jne 0x5e51f6
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
jmp 0x5e51f6
mov edx, dword [ecx + 0x10]
jmp 0x5e5277
mov dword [ebp + 4], 0x5b
jmp 0x5e5a10
mov dword [ebp + 4], 0x67
jmp 0x5e5ab9
mov dword [ebp + 4], 0x49
jmp 0x5e590c
mov esi, dword [esp + 0x60]
mov ebx, dword [esi + 0x1c]
mov dword [esp], ebx
call fcn.005eac80
mov edx, dword [ebx + 0x14]
mov eax, dword [esi + 0x10]
cmp eax, edx
jbe 0x5e62b5
mov eax, edx
test eax, eax
jne 0x5e663d
mov edx, dword [ebp + 0x14]
lea eax, [edx + 2]
cmp eax, dword [ebp + 0xc]
ja 0x5e50dc
jmp 0x5e5ad0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.005e2790
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0x30], eax
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov byte [eax + ecx], 0x1f
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 1], 0x8b
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 2], 8
lea ebx, [ecx + 3]
mov dword [ebp + 0x14], ebx
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x5e67fb
add ebx, dword [ebp + 8]
mov edx, dword [eax]
test edx, edx
setne dl
mov esi, edx
cmp dword [eax + 0x2c], 1
sbb edx, edx
not edx
and edx, 2
add esi, edx
cmp dword [eax + 0x10], 1
sbb edx, edx
not edx
and edx, 4
add esi, edx
cmp dword [eax + 0x1c], 1
sbb edx, edx
not edx
and edx, 8
add edx, esi
cmp dword [eax + 0x24], 1
sbb eax, eax
not eax
and eax, 0x10
add eax, edx
mov byte [ebx], al
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx + 4]
mov byte [eax + ecx + 4], dl
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 4]
shr eax, 8
mov byte [edx + ecx + 5], al
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 4]
shr eax, 0x10
mov byte [edx + ecx + 6], al
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x1c]
mov dl, byte [edx + 7]
and edx, 0xff
mov byte [eax + ecx + 7], dl
lea eax, [ecx + 8]
mov dword [ebp + 0x14], eax
add eax, dword [ebp + 8]
mov edx, dword [ebp + 0x84]
cmp edx, 9
je 0x5e670a
cmp dword [ebp + 0x88], 1
jle 0x5e6432
mov dl, 4
mov byte [eax], dl
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx + 0xc]
mov byte [eax + ecx + 9], dl
lea edx, [ecx + 0xa]
mov dword [ebp + 0x14], edx
mov eax, dword [ebp + 0x1c]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x5e6414
mov ebx, dword [ebp + 8]
mov eax, dword [eax + 0x14]
mov byte [ebx + edx], al
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x14]
shr eax, 8
mov byte [edx + ecx + 0xb], al
lea edx, [ecx + 0xc]
mov dword [ebp + 0x14], edx
mov eax, dword [ebp + 0x1c]
mov esi, dword [eax + 0x2c]
test esi, esi
jne 0x5e6711
mov dword [ebp + 0x20], 0
mov dword [ebp + 4], 0x45
jmp 0x5e558c
dec edx
jle 0x5e63d1
xor edx, edx
jmp 0x5e63d3
sub edx, ecx
mov dword [esp + 8], edx
add ecx, dword [ebp + 8]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.005e2790
mov dword [ebx + 0x30], eax
mov eax, dword [ebp + 0x1c]
jmp 0x5e5aaf
sub ecx, edx
mov dword [esp + 8], ecx
add edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.005e2790
mov dword [ebx + 0x30], eax
mov eax, dword [ebp + 0x1c]
jmp 0x5e59ff
cmp esi, 2
ja 0x5e5d23
jmp 0x5e5b68
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x60]
mov edx, dword [ebx + 0x30]
mov byte [ecx + eax], dl
mov ecx, dword [ebp + 8]
mov edx, dword [ebx + 0x30]
shr edx, 8
mov byte [ecx + eax + 1], dl
mov ecx, dword [ebp + 8]
mov edx, dword [ebx + 0x30]
shr edx, 0x10
mov byte [ecx + eax + 2], dl
mov edx, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [ebx + 0x33]
mov byte [edx + eax + 3], cl
mov ecx, dword [ebp + 8]
mov edx, dword [ebx + 8]
mov byte [ecx + eax + 4], dl
mov ecx, dword [ebp + 8]
mov edx, dword [ebx + 8]
shr edx, 8
mov byte [ecx + eax + 5], dl
mov ecx, dword [ebp + 8]
mov edx, dword [ebx + 8]
shr edx, 0x10
mov byte [ecx + eax + 6], dl
mov edx, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [ebx + 0xb]
mov byte [edx + eax + 7], cl
add eax, 8
mov dword [ebp + 0x14], eax
mov esi, ebx
jmp 0x5e51d5
mov dword [esp + 0x34], eax
mov edi, dword [edx + 0xc]
mov esi, dword [ebx + 0x10]
cmp eax, 4
jae 0x5e66d7
mov dword [esp + 0x38], 0
test byte [esp + 0x34], 2
je 0x5e6543
mov cx, word [esi]
mov word [edi], cx
mov dword [esp + 0x38], 2
test byte [esp + 0x34], 1
je 0x5e6558
mov ecx, dword [esp + 0x38]
mov cl, byte [esi + ecx]
mov esi, dword [esp + 0x38]
mov byte [edi + esi], cl
add dword [edx + 0xc], eax
add dword [ebx + 0x10], eax
add dword [edx + 0x14], eax
sub dword [edx + 0x10], eax
sub dword [ebx + 0x14], eax
jne 0x5e5879
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
jmp 0x5e5879
mov eax, 1
jmp 0x5e52f5
mov ecx, 0x40
jmp 0x5e54c4
mov dword [esp + 0x34], eax
mov edi, dword [edx + 0xc]
mov esi, dword [ebx + 0x10]
cmp eax, 4
jae 0x5e6739
mov dword [esp + 0x38], 0
test byte [esp + 0x34], 2
je 0x5e65bc
mov cx, word [esi]
mov word [edi], cx
mov dword [esp + 0x38], 2
test byte [esp + 0x34], 1
je 0x5e65d1
mov ecx, dword [esp + 0x38]
mov cl, byte [esi + ecx]
mov esi, dword [esp + 0x38]
mov byte [edi + esi], cl
add dword [edx + 0xc], eax
add dword [ebx + 0x10], eax
add dword [edx + 0x14], eax
sub dword [edx + 0x10], eax
sub dword [ebx + 0x14], eax
jne 0x5e5358
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
jmp 0x5e5358
mov dx, word [esi]
mov word [edi], dx
add edi, 2
add esi, 2
sub dword [esp + 0x34], 2
jmp 0x5e5e35
test edi, 1
jne 0x5e6993
test edi, 2
jne 0x5e697f
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x5e622d
mov cl, byte [ecx]
mov byte [edx], cl
inc edi
inc esi
lea edx, [eax - 1]
mov dword [esp + 0x34], edx
jmp 0x5e5e29
mov edx, eax
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0xc]
mov esi, dword [ebx + 0x10]
cmp eax, 4
jae 0x5e67d7
xor ecx, ecx
test dl, 2
je 0x5e6664
mov cx, word [esi]
mov word [edi], cx
mov ecx, 2
and edx, 1
je 0x5e666f
mov dl, byte [esi + ecx]
mov byte [edi + ecx], dl
mov ecx, dword [esp + 0x60]
add dword [ecx + 0xc], eax
add dword [ebx + 0x10], eax
add dword [ecx + 0x14], eax
sub dword [ecx + 0x10], eax
sub dword [ebx + 0x14], eax
jne 0x5e62bd
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
jmp 0x5e62bd
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
jmp 0x5e5d09
xor edx, edx
jmp 0x5e5310
test edi, 1
jne 0x5e694f
test edi, 2
jne 0x5e693b
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x5e5444
mov edx, dword [ecx + 0x10]
jmp 0x5e5487
test edi, 1
jne 0x5e69dc
test edi, 2
jne 0x5e69c6
mov ecx, dword [esp + 0x34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x5e6526
mov dword [esp], ebp
call fcn.005ead00
jmp 0x5e540e
mov dl, 2
jmp 0x5e63d3
mov dword [esp + 8], edx
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.005e2790
mov dword [ebx + 0x30], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
jmp 0x5e641f
test edi, 1
jne 0x5e6a2a
test edi, 2
jne 0x5e6a14
mov ecx, dword [esp + 0x34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x5e659f
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
add edi, 5
jmp 0x5e5d09
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
add edi, 4
jmp 0x5e5d09
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
add edi, 7
jmp 0x5e5d09
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
add edi, 6
jmp 0x5e5d09
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
add edi, 3
jmp 0x5e5d09
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
add edi, 2
jmp 0x5e5d09
test edi, 1
jne 0x5e6971
test edi, 2
jne 0x5e695d
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x5e6652
mov eax, dword [ebp + 8]
mov byte [eax + ebx], 0
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 4], 0
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 5], 0
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 6], 0
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 7], 0
lea eax, [ecx + 8]
mov dword [ebp + 0x14], eax
mov edx, dword [ebp + 8]
add edx, eax
mov eax, dword [ebp + 0x84]
cmp eax, 9
je 0x5e69a1
cmp dword [ebp + 0x88], 1
jle 0x5e6863
mov al, 4
mov byte [edx], al
mov eax, dword [ebp + 8]
mov byte [eax + ecx + 9], 0xb
lea edx, [ecx + 0xa]
mov dword [ebp + 0x14], edx
mov dword [ebp + 4], 0x71
jmp 0x5e50dc
dec eax
jle 0x5e6845
xor eax, eax
jmp 0x5e6847
mov ecx, pe_nt_image_headers32
jmp 0x5e54c4
mov cx, word [esi]
mov edi, dword [esp + 0x20]
mov word [edi], cx
add edi, 2
mov dword [esp + 0x20], edi
add esi, 2
sub dword [esp + 0x34], 2
jmp 0x5e60bb
mov cl, byte [ecx]
mov edi, dword [esp + 0x3c]
mov byte [edi], cl
inc dword [esp + 0x20]
inc esi
lea ecx, [eax - 1]
mov dword [esp + 0x34], ecx
jmp 0x5e60b0
mov cx, word [esi]
mov edi, dword [esp + 0x20]
mov word [edi], cx
add edi, 2
mov dword [esp + 0x20], edi
add esi, 2
sub dword [esp + 0x34], 2
jmp 0x5e608f
mov cl, byte [ecx]
mov edi, dword [esp + 0x3c]
mov byte [edi], cl
inc dword [esp + 0x20]
inc esi
lea ecx, [eax - 1]
mov dword [esp + 0x34], ecx
jmp 0x5e6084
mov cx, word [esi]
mov edi, dword [esp + 0x3c]
mov word [edi], cx
add edi, 2
mov dword [esp + 0x3c], edi
add esi, 2
sub dword [esp + 0x34], 2
jmp 0x5e61de
mov cl, byte [ecx]
mov edi, dword [esp + 0x38]
mov byte [edi], cl
inc dword [esp + 0x3c]
inc esi
lea ecx, [eax - 1]
mov dword [esp + 0x34], ecx
jmp 0x5e61d3
mov cx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub edx, 2
jmp 0x5e620c
mov dl, byte [esi]
mov byte [edi], dl
inc edi
inc esi
lea edx, [eax - 1]
jmp 0x5e6200
mov cx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub edx, 2
jmp 0x5e66c3
mov dl, byte [esi]
mov byte [edi], dl
inc edi
inc esi
lea edx, [eax - 1]
jmp 0x5e66b7
mov cx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub edx, 2
jmp 0x5e67ef
mov dl, byte [esi]
mov byte [edi], dl
inc edi
inc esi
lea edx, [eax - 1]
jmp 0x5e67e3
mov cx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub edx, 2
jmp 0x5e661f
mov dl, byte [esi]
mov byte [edi], dl
inc edi
inc esi
lea edx, [eax - 1]
jmp 0x5e6613
mov al, 2
jmp 0x5e6847
test edi, 1
jne 0x5e69fb
test edi, 2
jne 0x5e69ee
mov ecx, edx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
jmp 0x5e53da
mov cx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub dword [esp + 0x34], 2
jmp 0x5e66ef
mov cl, byte [esi]
mov byte [edi], cl
inc edi
inc esi
lea ecx, [eax - 1]
mov dword [esp + 0x34], ecx
jmp 0x5e66e3
mov word [edi], 0
add edi, 2
sub edx, 2
jmp 0x5e69b8
mov byte [edi], 0
inc edi
dec edx
jmp 0x5e69b0
mov eax, dword [ebp + 4]
mov edx, ecx
jmp 0x5e50d3
mov eax, dword [ebp + 4]
jmp 0x5e50ca
mov cx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub dword [esp + 0x34], 2
jmp 0x5e6751
mov cl, byte [esi]
mov byte [edi], cl
inc edi
inc esi
lea ecx, [eax - 1]
mov dword [esp + 0x34], ecx
jmp 0x5e6745