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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov edx, dword [esp + 0x70]
mov eax, dword [0x87aa4c]
xor eax, esp
mov dword [esp + 0x58], eax
mov esi, 0xfffffffe
test edx, edx
je 0x5c4919
cmp dword [edx + 0x20], 0
je 0x5c4919
cmp dword [edx + 0x24], 0
je 0x5c4919
mov edi, dword [edx + 0x1c]
test edi, edi
je 0x5c4919
cmp dword [edi], edx
jne 0x5c4919
mov eax, dword [edi + 4]
lea ecx, [eax - 0x3f34]
cmp ecx, 0x1f
ja 0x5c4919
cmp dword [edx + 0xc], 0
je 0x5c4919
cmp dword [edx], 0
je 0x5c44d4
cmp eax, 0x3f3f
jne 0x5c276d
mov dword [edi + 4], 0x3f40
mov eax, dword [edx + 0xc]
mov dword [esp + 0xc], eax
mov ebp, dword [edx + 0x10]
mov esi, dword [edx]
mov ecx, dword [edx + 4]
mov ebx, dword [edi + 0x3c]
mov edx, dword [edi + 0x40]
lea eax, [edi + 0x74]
mov dword [esp + 0x30], eax
lea eax, [edi + 0x534]
mov dword [esp + 0x44], eax
lea eax, [edi + 0x70]
mov dword [esp + 0x38], eax
lea eax, [edi + 0x58]
mov dword [esp + 0x40], eax
lea eax, [edi + 0x2f4]
mov dword [esp + 0x34], eax
lea eax, [edi + 0x5c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x74]
add eax, 0xfffffffb
mov dword [esp + 0x50], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x48], ecx
mov dword [esp], ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 8], edi
mov eax, dword [edi + 4]
mov ecx, 0xffffc0cc
add eax, ecx
cmp eax, 0x1e
ja case.default.0x5c27f0
mov ecx, 1
mov dword [esp + 0x1c], ebp
jmp dword [eax*4 + 0x7dc714]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x5c2c88
cmp edx, 0x10
jae 0x5c3435
mov ecx, dword [esp]
test ecx, ecx
je 0x5c49dc
lea ebp, [ecx - 1]
movzx edi, byte [esi]
mov ecx, edx
shl edi, cl
mov dword [esp + 4], esi
inc esi
add ebx, edi
mov edi, ebx
lea ebx, [edx + 8]
cmp edx, 7
ja 0x5c3422
mov ecx, ebx
test ebp, ebp
je 0x5c4a0a
mov ebx, dword [esp + 4]
movzx esi, byte [ebx + 1]
shl esi, cl
add dword [esp], 0xfffffffe
add ebx, 2
add edi, esi
mov esi, ebx
mov ebx, edi
or edx, 0x10
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 8]
jmp 0x5c3435
test ebp, ebp
je 0x5c46ff
movzx eax, byte [edi + 0x44]
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xc], ecx
dec ebp
mov dword [edi + 4], 0x3f48
jmp 0x5c27d4
mov dword [esp + 4], esi
mov esi, edi
jmp 0x5c401b
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x5c4005
mov edi, ebx
cmp edx, eax
jae 0x5c2d6a
mov dword [esp + 0x18], edx
mov ebx, dword [esp]
mov ebp, esi
mov dword [esp + 4], esi
sub ebx, 1
jb 0x5c454a
movzx esi, byte [ebp]
mov ecx, edx
shl esi, cl
inc ebp
add edi, esi
mov esi, dword [esp + 4]
add edx, 8
cmp edx, eax
jb 0x5c28b7
jmp 0x5c2d6f
mov ecx, edx
and cl, 7
shr ebx, cl
mov eax, edx
and eax, 0xfffffff8
cmp edx, 0x1f
ja 0x5c2c63
mov ecx, dword [esp]
test ecx, ecx
je 0x5c4988
mov ebp, edx
lea edx, [ecx - 1]
movzx edi, byte [esi]
mov ecx, eax
shl edi, cl
mov dword [esp + 4], esi
inc esi
add ebx, edi
lea ecx, [eax + 8]
cmp ebp, 0x17
ja 0x5c2c94
test edx, edx
je 0x5c49b0
mov edx, dword [esp]
add edx, 0xfffffffe
mov esi, dword [esp + 4]
movzx edi, byte [esi + 1]
shl edi, cl
add esi, 2
add ebx, edi
lea ecx, [eax + 0x10]
cmp ebp, 0xf
ja 0x5c2c94
mov edi, ebx
test edx, edx
je 0x5c4a0a
mov edx, dword [esp]
add edx, 0xfffffffd
mov ebx, dword [esp + 4]
movzx esi, byte [ebx + 2]
shl esi, cl
add edi, esi
mov esi, edi
lea ecx, [ebx + 3]
add eax, 0x18
cmp ebp, 7
ja 0x5c3c48
test edx, edx
mov ebp, dword [esp + 0x1c]
je 0x5c4ab5
mov edi, ebx
movzx edx, byte [ebx + 3]
mov ecx, eax
shl edx, cl
add dword [esp], 0xfffffffc
add edi, 4
mov ebx, esi
mov esi, edi
add ebx, edx
mov edx, 0x20
mov edi, dword [esp + 8]
jmp 0x5c2ca1
mov ecx, dword [edi + 0x4c]
jmp 0x5c41c5
mov eax, dword [esp + 0xc]
jmp 0x5c3cc6
cmp edx, 0x20
jae 0x5c3c5f
mov ecx, edx
mov edi, dword [esp]
test edi, edi
je 0x5c496e
movzx edx, byte [esi]
mov eax, ecx
shl edx, cl
mov ecx, esi
lea esi, [edi - 1]
add ebx, edx
mov dword [esp + 4], ecx
lea edx, [ecx + 1]
cmp eax, 0x17
ja 0x5c2da4
lea ecx, [eax + 8]
test esi, esi
je 0x5c46e9
mov edi, dword [esp + 4]
movzx edx, byte [edi + 1]
shl edx, cl
mov ecx, dword [esp]
lea esi, [ecx - 2]
add ebx, edx
mov dword [esp + 0x10], ebx
lea edx, [edi + 2]
cmp eax, 0xf
ja 0x5c34f4
lea ecx, [eax + 0x10]
test esi, esi
je 0x5c4a87
mov ebx, dword [esp + 4]
movzx edx, byte [ebx + 2]
shl edx, cl
mov ecx, dword [esp]
lea esi, [ecx - 3]
add dword [esp + 0x10], edx
lea ecx, [ebx + 3]
cmp eax, 7
mov edi, dword [esp + 8]
ja 0x5c3c56
mov edx, eax
add edx, 0x18
test esi, esi
je 0x5c4a69
add dword [esp], 0xfffffffc
mov esi, dword [esp + 4]
movzx eax, byte [esi + 3]
add esi, 4
mov ecx, edx
shl eax, cl
mov ebx, dword [esp + 0x10]
add ebx, eax
jmp 0x5c3c5f
mov dword [esp + 4], esi
mov esi, ebx
mov ecx, edi
jmp 0x5c2cd5
cmp edx, 0xf
jbe 0x5c3747
jmp 0x5c3789
cmp edx, 0x10
jae 0x5c2c67
mov dword [esp + 0x18], edx
mov eax, edi
mov edi, ebx
mov ebx, eax
mov eax, dword [esp]
test eax, eax
je 0x5c46c8
dec eax
mov edx, esi
movzx esi, byte [esi]
mov ecx, dword [esp + 0x18]
shl esi, cl
mov dword [esp + 4], edx
lea ebp, [edx + 1]
add edi, esi
mov esi, edi
lea edx, [ecx + 8]
cmp ecx, 7
ja 0x5c2db2
test eax, eax
je 0x5c4a40
mov edi, dword [esp + 4]
movzx eax, byte [edi + 1]
mov ecx, edx
shl eax, cl
add dword [esp], 0xfffffffe
add edi, 2
mov ecx, edi
add esi, eax
mov edx, dword [esp + 0x18]
or edx, 0x10
jmp 0x5c2db7
mov dword [esp + 4], esi
mov esi, ebx
mov eax, edi
mov ebx, dword [esp]
jmp 0x5c2ce1
mov ebp, ebx
mov ebx, edi
cmp edx, 0xe
jae 0x5c2c6e
mov dword [esp + 0x18], edx
mov edi, ebp
mov eax, dword [esp]
test eax, eax
je 0x5c46c8
dec eax
mov edx, esi
movzx esi, byte [esi]
mov ecx, dword [esp + 0x18]
shl esi, cl
mov dword [esp + 4], edx
lea ebp, [edx + 1]
add edi, esi
mov dword [esp + 0x10], edi
lea edx, [ecx + 8]
cmp ecx, 5
ja 0x5c2e05
test eax, eax
je 0x5c4a22
mov esi, dword [esp + 4]
movzx eax, byte [esi + 1]
mov ecx, edx
shl eax, cl
add dword [esp], 0xfffffffe
add esi, 2
mov ecx, dword [esp + 0x10]
add ecx, eax
mov edi, dword [esp + 0x18]
or edi, 0x10
mov ebp, ecx
jmp 0x5c2e10
cmp edx, 0x1f
jbe 0x5c3354
jmp 0x5c370d
mov dword [esp + 4], esi
test byte [edi + 0x15], 4
jne 0x5c2c75
mov ebp, dword [esp]
jmp 0x5c37e7
mov ebp, dword [esp]
jmp 0x5c38a3
mov edi, ebx
jmp 0x5c2e7d
cmp dword [edi + 0xc], 0
je 0x5c3583
cmp edx, 0x1f
mov dword [esp + 4], esi
ja 0x5c2d9d
mov edi, edx
mov eax, dword [esp]
test eax, eax
je 0x5c49f0
dec eax
mov edx, esi
movzx esi, byte [esi]
mov ecx, edi
shl esi, cl
inc edx
add ebx, esi
lea esi, [edi + 8]
cmp edi, 0x17
ja 0x5c34d4
mov ecx, esi
test eax, eax
je 0x5c46e9
mov eax, dword [esp]
add eax, 0xfffffffe
mov edx, dword [esp + 4]
movzx esi, byte [edx + 1]
shl esi, cl
add edx, 2
add ebx, esi
lea ecx, [edi + 0x10]
cmp edi, 0xf
ja 0x5c3506
test eax, eax
je 0x5c46e9
mov eax, dword [esp]
add eax, 0xfffffffd
mov edx, dword [esp + 4]
movzx esi, byte [edx + 2]
shl esi, cl
add edx, 3
add ebx, esi
lea ecx, [edi + 0x18]
cmp edi, 7
ja 0x5c3506
test eax, eax
je 0x5c46e9
mov edx, dword [esp + 4]
movzx eax, byte [edx + 3]
shl eax, cl
add dword [esp], 0xfffffffc
add edx, 4
mov dword [esp + 4], edx
add ebx, eax
mov esi, edi
or esi, 0x20
jmp 0x5c350f
mov edx, eax
jmp 0x5c2ca1
mov ecx, esi
jmp 0x5c2dbf
mov edi, edx
jmp 0x5c2e10
mov esi, ebx
cmp edx, 0xf
mov ebp, dword [esp]
ja 0x5c3855
jmp 0x5c3802
mov dword [edi + 4], 0x3f40
jmp 0x5c27d4
mov dword [esp], edx
mov edx, ecx
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x1c]
movzx eax, bx
mov ecx, ebx
not ecx
shr ecx, 0x10
cmp eax, ecx
jne 0x5c2d53
mov dword [esp + 4], esi
xor esi, esi
mov dword [edi + 0x44], eax
mov ecx, edi
mov dword [edi + 4], 0x3f42
mov edx, 0
cmp dword [esp + 0x74], 6
je 0x5c4993
mov ebx, dword [esp]
mov eax, ecx
mov dword [ecx + 4], 0x3f43
mov edi, dword [eax + 0x44]
test edi, edi
je 0x5c2d42
cmp edi, ebx
cmovae edi, ebx
cmp edi, ebp
cmovae edi, ebp
test edi, edi
je 0x5c4650
push edi
mov ebp, dword [esp + 8]
push ebp
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
push esi
mov dword [esp + 0x24], edx
call fcn.00731570
mov edx, dword [esp + 0x24]
add esp, 0xc
sub ebx, edi
mov dword [esp], ebx
add ebp, edi
mov ecx, dword [esp + 0x1c]
sub ecx, edi
add esi, edi
mov dword [esp + 0xc], esi
mov esi, ebp
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 8]
sub dword [eax + 0x44], edi
mov edi, eax
mov ebp, ecx
jmp 0x5c27d4
mov dword [eax + 4], 0x3f3f
mov edi, eax
mov dword [esp], ebx
jmp 0x5c3bd3
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc5cc
mov dword [edi + 4], 0x3f51
jmp 0x5c27d4
mov ebp, esi
mov ebx, dword [esp]
mov esi, 0xffffffff
mov ecx, eax
shl esi, cl
not esi
and esi, edi
mov eax, dword [esp + 8]
add dword [eax + 0x44], esi
shr edi, cl
add dword [eax + 0x1bc8], ecx
sub edx, ecx
mov dword [esp + 4], ebp
mov dword [esp], ebx
mov esi, eax
mov ebx, edi
jmp 0x5c400b
mov esi, edx
jmp 0x5c3513
mov dword [esp], esi
mov esi, edx
mov edi, dword [esp + 8]
jmp 0x5c3c5f
mov ecx, ebp
mov dword [esp], eax
mov edi, ebx
mov ebx, esi
mov ebp, dword [esp + 0x1c]
mov dword [edi + 0x14], ebx
cmp bl, 8
jne 0x5c2dec
test ebx, 0xe000
mov esi, ecx
je 0x5c330e
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc58c
mov dword [edi + 4], 0x3f51
jmp 0x5c27d4
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc55d
mov dword [edi + 4], 0x3f51
mov esi, ecx
jmp 0x5c27d4
mov esi, ebp
mov dword [esp], eax
mov edi, edx
mov ebp, dword [esp + 0x10]
mov eax, ebp
and eax, 0x1f
lea ecx, [eax + 0x101]
mov dword [ebx + 0x64], ecx
mov ecx, ebp
shr ecx, 5
and ecx, 0x1f
lea edx, [ecx + 1]
mov dword [ebx + 0x68], edx
mov edx, ebp
shr edx, 0xa
and edx, 0xf
add edx, 4
mov dword [ebx + 0x60], edx
shr ebp, 0xe
add edi, 0xfffffff2
cmp eax, 0x1e
setb al
cmp ecx, 0x1e
setb cl
test al, cl
mov edx, edi
jne 0x5c2e69
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc5e9
mov dword [ebx + 4], 0x3f51
jmp 0x5c3bae
mov edi, ebp
mov dword [ebx + 0x6c], 0
mov dword [ebx + 4], 0x3f45
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ecx + 0x60]
jb 0x5c2faa
mov dword [esp + 0x18], edx
cmp eax, 0x12
mov ebx, edi
mov edi, dword [esp + 8]
ja 0x5c2f24
mov dword [esp + 4], esi
mov edx, 3
sub edx, eax
mov ecx, eax
and edx, 3
je 0x5c2ec8
mov edi, dword [esp + 0x30]
movzx esi, word [ecx + ecx + 0x7dbca0]
inc ecx
mov word [edi + esi*2], 0
dec edx
jne 0x5c2eb6
add eax, 0xfffffff0
cmp eax, 3
mov esi, dword [esp + 4]
mov edi, dword [esp + 8]
jb 0x5c2f21
add ecx, 0xffffffed
mov edx, dword [esp + 0x30]
movzx eax, word [ecx + ecx + 0x7dbcc6]
mov word [edx + eax*2], 0
movzx eax, word [ecx + ecx + 0x7dbcc8]
mov word [edx + eax*2], 0
movzx eax, word [ecx + ecx + 0x7dbcca]
mov word [edx + eax*2], 0
movzx eax, word [ecx + ecx + 0x7dbccc]
mov word [edx + eax*2], 0
add ecx, 4
jne 0x5c2edf
mov ecx, 0x13
mov dword [edi + 0x6c], ecx
mov eax, dword [esp + 0x44]
mov dword [edi + 0x70], eax
mov dword [edi + 0x50], eax
mov dword [edi + 0x58], 7
push dword [esp + 0x34]
push dword [esp + 0x44]
push dword [esp + 0x40]
push 0x13
push dword [esp + 0x40]
push 0
call fcn.005c7340
add esp, 0x18
test eax, eax
je 0x5c2fdd
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc60d
jmp 0x5c4291
mov ebx, ebp
mov dword [esp + 4], esi
mov esi, edx
mov ebp, dword [esp + 8]
mov ecx, edi
and ecx, 7
lea edx, [eax + 1]
mov dword [ebp + 0x6c], edx
movzx eax, word [eax + eax + 0x7dbca0]
mov word [ebp + eax*2 + 0x74], cx
shr edi, 3
add esi, 0xfffffffd
mov eax, edx
cmp edx, dword [ebp + 0x60]
mov edx, esi
mov esi, dword [esp + 4]
mov ebp, ebx
jae 0x5c2e8d
cmp edx, 2
ja 0x5c2f6d
mov ebp, dword [esp]
test ebp, ebp
je 0x5c459c
mov ecx, edx
or edx, 8
mov ebx, esi
movzx esi, byte [esi]
shl esi, cl
dec ebp
mov dword [esp], ebp
inc ebx
mov dword [esp + 4], ebx
add edi, esi
mov ebp, dword [esp + 8]
mov esi, edx
mov ebx, dword [esp + 0x1c]
jmp 0x5c2f79
mov dword [edi + 0x6c], 0
mov dword [edi + 4], 0x3f46
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 0x68]
mov ecx, dword [edi + 0x6c]
add eax, dword [edi + 0x64]
mov dword [esp + 0x3c], eax
cmp ecx, eax
jae 0x5c32a3
mov eax, dword [esp]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], ecx
mov ebp, dword [edi + 0x50]
movzx ecx, byte [edi + 0x58]
mov eax, ebx
mov ebx, 0xffffffff
shl ebx, cl
not ebx
mov esi, eax
mov ecx, eax
and ecx, ebx
mov eax, edx
mov dword [esp + 0x10], ebp
movzx edx, byte [ebp + ecx*4 + 1]
cmp eax, edx
jae 0x5c3086
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 4], ecx
sub edi, 1
jb 0x5c451b
mov ebp, dword [esp + 4]
movzx edx, byte [ebp]
mov ecx, eax
shl edx, cl
inc ebp
mov dword [esp + 4], ebp
mov ecx, esi
add ecx, edx
add eax, 8
mov esi, ecx
and ecx, ebx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + ecx*4 + 1]
cmp eax, edx
jb 0x5c3052
jmp 0x5c3092
mov edi, dword [esp + 0x24]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x20]
mov dword [esp], edi
mov edi, dword [esp + 0x10]
movzx edi, word [edi + ecx*4 + 2]
cmp edi, 0xf
ja 0x5c30d4
mov ecx, edx
shr esi, cl
mov dword [esp + 0x10], esi
sub eax, edx
mov esi, dword [esp + 0x2c]
lea ecx, [esi + 1]
mov edx, dword [esp + 8]
mov dword [edx + 0x6c], ecx
mov word [edx + esi*2 + 0x74], di
mov edi, edx
mov edx, eax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp]
mov esi, dword [esp + 4]
jmp 0x5c327f
cmp edi, 0x10
je 0x5c3132
cmp edi, 0x11
jne 0x5c3190
lea edi, [edx + 3]
mov dword [esp + 0x10], edi
cmp eax, edi
mov ebp, dword [esp]
jae 0x5c3114
sub ebp, 1
jb 0x5c45b6
mov ebx, dword [esp + 4]
movzx edi, byte [ebx]
mov ecx, eax
shl edi, cl
inc ebx
mov dword [esp + 4], ebx
add esi, edi
add eax, 8
cmp eax, dword [esp + 0x10]
jb 0x5c30f0
mov dword [esp], ebp
mov ecx, edx
mov ebx, esi
shr ebx, cl
mov ebp, ebx
and ebp, 7
add ebp, 3
shr ebx, 3
sub eax, edx
add eax, 0xfffffffd
jmp 0x5c31db
lea ecx, [edx + 2]
mov ebp, ecx
cmp eax, ecx
jae 0x5c3163
mov ecx, dword [esp]
sub ecx, 1
jb 0x5c45b6
mov dword [esp], ecx
mov ebx, dword [esp + 4]
movzx edi, byte [ebx]
mov ecx, eax
shl edi, cl
inc ebx
mov dword [esp + 4], ebx
add esi, edi
add eax, 8
cmp eax, ebp
jb 0x5c313b
mov ecx, edx
mov ebx, esi
shr ebx, cl
sub eax, edx
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x5c44af
mov ecx, dword [esp + 0x30]
movzx ecx, word [ecx + edx*2 - 2]
mov ebp, ebx
and ebp, 3
add ebp, 3
shr ebx, 2
add eax, 0xfffffffe
jmp 0x5c31dd
lea edi, [edx + 7]
mov dword [esp + 0x10], edi
cmp eax, edi
mov ebp, dword [esp]
jae 0x5c31c2
sub ebp, 1
jb 0x5c45b6
mov ebx, dword [esp + 4]
movzx edi, byte [ebx]
mov ecx, eax
shl edi, cl
inc ebx
mov dword [esp + 4], ebx
add esi, edi
add eax, 8
cmp eax, dword [esp + 0x10]
jb 0x5c319e
mov dword [esp], ebp
mov ecx, edx
mov ebx, esi
shr ebx, cl
mov ebp, ebx
and ebp, 0x7f
add ebp, 0xb
shr ebx, 7
sub eax, edx
add eax, 0xfffffff9
xor ecx, ecx
mov edi, dword [esp + 8]
mov esi, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
add eax, ebp
cmp eax, dword [esp + 0x3c]
ja 0x5c443f
mov dword [esp + 4], esi
mov edx, ebp
mov eax, ebp
and edx, 3
mov esi, ebp
mov dword [esp + 0x10], ebx
je 0x5c322e
mov ebp, esi
mov eax, esi
and eax, 0xfffffffc
mov esi, dword [edi + 0x6c]
lea edi, [esi + 1]
mov ebx, dword [esp + 8]
mov dword [ebx + 0x6c], edi
mov edi, dword [esp + 8]
mov word [edi + esi*2 + 0x74], cx
dec edx
jne 0x5c3213
mov esi, ebp
cmp esi, 4
jb 0x5c3270
mov edx, dword [edi + 0x6c]
lea esi, [edx + 1]
mov dword [edi + 0x6c], esi
mov word [edi + edx*2 + 0x74], cx
mov edx, dword [edi + 0x6c]
lea esi, [edx + 1]
mov dword [edi + 0x6c], esi
mov word [edi + edx*2 + 0x74], cx
mov edx, dword [edi + 0x6c]
lea esi, [edx + 1]
mov dword [edi + 0x6c], esi
mov word [edi + edx*2 + 0x74], cx
mov edx, dword [edi + 0x6c]
lea esi, [edx + 1]
mov dword [edi + 0x6c], esi
mov word [edi + edx*2 + 0x74], cx
add eax, 0xfffffffc
jne 0x5c3233
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp]
mov ebx, dword [edi + 0x68]
add ebx, dword [edi + 0x64]
mov ecx, dword [edi + 0x6c]
mov dword [esp], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x3c], ebx
cmp ecx, ebx
mov ebx, dword [esp + 0x10]
jb 0x5c3017
cmp dword [edi + 4], 0x3f51
je 0x5c27d4
cmp word [edi + 0x274], 0
je 0x5c34dd
mov dword [esp + 4], esi
mov esi, edx
mov eax, dword [esp + 0x44]
mov dword [edi + 0x70], eax
mov dword [edi + 0x50], eax
mov dword [edi + 0x58], 9
push dword [esp + 0x34]
push dword [esp + 0x44]
push dword [esp + 0x40]
push dword [edi + 0x64]
push dword [esp + 0x40]
push 1
call fcn.005c7340
add esp, 0x18
test eax, eax
je 0x5c36aa
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc665
jmp 0x5c36f2
mov eax, dword [edi + 0x24]
test eax, eax
je 0x5c331f
mov ecx, ebx
shr ecx, 8
and ecx, 1
mov dword [eax], ecx
test byte [edi + 0x15], 2
je 0x5c3349
test byte [edi + 0xc], 4
je 0x5c3349
mov byte [esp + 0x54], 8
mov byte [esp + 0x55], bh
lea eax, [esp + 0x54]
push 2
push eax
push dword [edi + 0x1c]
call fcn.005c5420
add esp, 0xc
mov dword [edi + 0x1c], eax
mov dword [edi + 4], 0x3f36
xor edx, edx
xor ebx, ebx
mov edi, dword [esp]
test edi, edi
je 0x5c471c
mov eax, edx
movzx edx, byte [esi]
mov ecx, eax
shl edx, cl
mov ecx, esi
lea esi, [edi - 1]
add ebx, edx
mov dword [esp + 4], ecx
lea edx, [ecx + 1]
cmp eax, 0x17
ja 0x5c3402
lea ecx, [eax + 8]
test esi, esi
je 0x5c46e9
mov edi, dword [esp + 4]
movzx edx, byte [edi + 1]
shl edx, cl
mov ecx, dword [esp]
lea esi, [ecx - 2]
add ebx, edx
mov dword [esp + 0x10], ebx
lea edx, [edi + 2]
cmp eax, 0xf
ja 0x5c3410
lea ecx, [eax + 0x10]
test esi, esi
mov edi, dword [esp + 8]
je 0x5c4a5c
mov ebx, dword [esp + 4]
movzx edx, byte [ebx + 2]
shl edx, cl
mov ecx, dword [esp]
lea esi, [ecx - 3]
add dword [esp + 0x10], edx
lea ecx, [ebx + 3]
cmp eax, 7
ja 0x5c3704
mov edx, eax
add edx, 0x18
test esi, esi
je 0x5c4a69
add dword [esp], 0xfffffffc
mov esi, dword [esp + 4]
movzx eax, byte [esi + 3]
add esi, 4
mov ecx, edx
shl eax, cl
mov ebx, dword [esp + 0x10]
add ebx, eax
jmp 0x5c370d
mov dword [esp], esi
mov esi, edx
mov edi, dword [esp + 8]
jmp 0x5c370d
mov dword [esp], esi
mov esi, edx
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 8]
jmp 0x5c370d
mov dword [esp], ebp
mov ecx, ebx
mov edx, dword [esp + 8]
mov ebx, edi
mov edi, edx
mov edx, ecx
mov ebp, dword [esp + 0x1c]
test al, 2
je 0x5c3489
cmp ebx, 0x8b1f
jne 0x5c3489
cmp dword [edi + 0x28], 0
jne 0x5c344e
mov dword [edi + 0x28], 0xf
push 0
push 0
push 0
call fcn.005c5420
add esp, 0xc
mov dword [edi + 0x1c], eax
mov word [esp + 0x54], 0x8b1f
lea ecx, [esp + 0x54]
push 2
push ecx
push eax
call fcn.005c5420
add esp, 0xc
mov dword [edi + 0x1c], eax
mov dword [edi + 4], 0x3f35
xor ebx, ebx
xor edx, edx
jmp 0x5c27d4
mov eax, dword [edi + 0x24]
test eax, eax
je 0x5c3497
mov dword [eax + 0x30], 0xffffffff
test byte [edi + 0xc], 1
je 0x5c34bd
mov eax, ebx
shl eax, 8
movzx eax, ax
mov ecx, ebx
shr ecx, 8
add ecx, eax
imul eax, ecx, 0xbdef7bdf
cmp eax, 0x8421085
jb 0x5c3bde
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc546
mov dword [edi + 4], 0x3f51
jmp 0x5c27d4
mov dword [esp + 4], edx
mov dword [esp], eax
jmp 0x5c350f
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc640
mov dword [edi + 4], 0x3f51
jmp 0x5c27d4
mov dword [esp], esi
mov esi, edx
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 8]
jmp 0x5c3c5f
mov dword [esp + 4], edx
mov dword [esp], eax
mov esi, ecx
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x28]
mov eax, ecx
sub eax, ebp
mov edx, dword [esp + 0x70]
add dword [edx + 0x14], eax
add dword [edi + 0x20], eax
test byte [edi + 0xc], 4
je 0x5c355d
cmp ecx, ebp
je 0x5c355d
mov edx, dword [esp + 0xc]
sub edx, eax
cmp dword [edi + 0x14], 0
mov ecx, dword [edi + 0x1c]
je 0x5c3548
push eax
push edx
push ecx
call fcn.005c5420
jmp 0x5c3550
push eax
push edx
push ecx
call fcn.005c4ef0
add esp, 0xc
mov dword [edi + 0x1c], eax
mov ecx, dword [esp + 0x70]
mov dword [ecx + 0x30], eax
test byte [edi + 0xc], 4
je 0x5c3577
cmp dword [edi + 0x14], 0
mov eax, ebx
bswap eax
cmovne eax, ebx
cmp eax, dword [edi + 0x1c]
jne 0x5c3692
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x28], ebp
mov esi, dword [esp + 4]
mov dword [edi + 4], 0x3f4f
mov eax, dword [edi + 0xc]
test eax, eax
je 0x5c45fc
cmp dword [edi + 0x14], 0
je 0x5c45fc
cmp edx, 0x1f
ja 0x5c366a
mov ecx, dword [esp]
test ecx, ecx
je 0x5c46f8
mov ebp, ebx
mov ebx, edx
lea edx, [ecx - 1]
movzx edi, byte [esi]
mov ecx, ebx
shl edi, cl
mov dword [esp + 4], esi
inc esi
add ebp, edi
mov dword [esp + 0x10], ebp
lea ecx, [ebx + 8]
cmp ebx, 0x17
ja 0x5c364a
test edx, edx
je 0x5c49bb
mov ebp, ebx
mov edx, dword [esp]
add edx, 0xfffffffe
mov esi, dword [esp + 4]
movzx edi, byte [esi + 1]
shl edi, cl
add esi, 2
mov ebx, dword [esp + 0x10]
add ebx, edi
lea ecx, [ebp + 0x10]
cmp ebp, 0xf
ja 0x5c365d
test edx, edx
je 0x5c49b0
mov edx, dword [esp]
add edx, 0xfffffffd
mov esi, dword [esp + 4]
movzx edi, byte [esi + 2]
shl edi, cl
add esi, 3
add ebx, edi
lea ecx, [ebp + 0x18]
cmp ebp, 7
ja 0x5c365d
test edx, edx
mov edi, dword [esp + 8]
je 0x5c4aa7
mov esi, dword [esp + 4]
movzx edx, byte [esi + 3]
shl edx, cl
add dword [esp], 0xfffffffc
add esi, 4
add ebx, edx
mov edx, ebp
or edx, 0x20
jmp 0x5c3666
mov dword [esp], edx
mov edx, ecx
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
jmp 0x5c366a
mov dword [esp], edx
mov edx, ecx
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x1c]
test al, 4
je 0x5c45f8
cmp ebx, dword [edi + 0x20]
je 0x5c45f8
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc6fc
mov dword [edi + 4], 0x3f51
jmp 0x5c27d4
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc6e7
mov dword [edi + 4], 0x3f51
mov dword [esp + 0x28], ebp
jmp 0x5c36f9
mov eax, dword [edi + 0x70]
mov dword [edi + 0x54], eax
mov dword [edi + 0x5c], 6
mov eax, dword [edi + 0x64]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*2]
push dword [esp + 0x34]
push dword [esp + 0x50]
push dword [esp + 0x40]
push dword [edi + 0x68]
push eax
push 2
call fcn.005c7340
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
je 0x5c3d7e
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc681
mov dword [edi + 4], 0x3f51
mov edx, esi
mov esi, dword [esp + 4]
jmp 0x5c27d4
mov dword [esp], esi
mov esi, ecx
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 0x24]
test eax, eax
je 0x5c3717
mov dword [eax + 4], ebx
test byte [edi + 0x15], 2
je 0x5c373c
test byte [edi + 0xc], 4
je 0x5c373c
mov dword [esp + 0x54], ebx
lea eax, [esp + 0x54]
push 4
push eax
push dword [edi + 0x1c]
call fcn.005c5420
add esp, 0xc
mov dword [edi + 0x1c], eax
mov dword [edi + 4], 0x3f37
xor edx, edx
xor ebx, ebx
mov eax, dword [esp]
test eax, eax
je 0x5c46f8
mov ecx, edx
movzx edx, byte [esi]
shl edx, cl
dec eax
add ebx, edx
mov edx, ecx
lea ecx, [esi + 1]
cmp edx, 7
ja 0x5c3784
add edx, 8
test eax, eax
je 0x5c46f6
add dword [esp], 0xfffffffe
movzx eax, byte [esi + 1]
add esi, 2
mov ecx, edx
shl eax, cl
add ebx, eax
jmp 0x5c3789
mov esi, ecx
mov dword [esp], eax
mov eax, dword [edi + 0x24]
test eax, eax
je 0x5c37a1
movzx ecx, bl
mov dword [eax + 8], ecx
mov eax, ebx
shr eax, 8
mov ecx, dword [edi + 0x24]
mov dword [ecx + 0xc], eax
mov dword [esp + 4], esi
test byte [edi + 0x15], 2
je 0x5c37cb
test byte [edi + 0xc], 4
je 0x5c37cb
mov word [esp + 0x54], bx
lea eax, [esp + 0x54]
push 2
push eax
push dword [edi + 0x1c]
call fcn.005c5420
add esp, 0xc
mov dword [edi + 0x1c], eax
mov dword [edi + 4], 0x3f38
xor edx, edx
test byte [edi + 0x15], 4
mov esi, 0
mov ebx, 0
mov ebp, dword [esp]
jne 0x5c3802
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x5c3894
mov dword [eax + 0x10], 0
jmp 0x5c3894
test ebp, ebp
je 0x5c4698
mov ecx, edx
mov ebx, dword [esp + 4]
movzx edx, byte [ebx]
shl edx, cl
lea eax, [ebp - 1]
mov edi, esi
mov esi, ebx
mov ebx, edi
add ebx, edx
mov edx, ecx
lea ecx, [esi + 1]
cmp edx, 7
ja 0x5c384d
add edx, 8
test eax, eax
je 0x5c471a
add ebp, 0xfffffffe
movzx eax, byte [esi + 1]
add esi, 2
mov dword [esp + 4], esi
mov ecx, edx
shl eax, cl
add ebx, eax
mov esi, ebx
jmp 0x5c3855
mov esi, ebx
mov dword [esp + 4], ecx
mov ebp, eax
mov eax, dword [esp + 8]
mov dword [eax + 0x44], esi
mov eax, dword [eax + 0x24]
test eax, eax
je 0x5c3866
mov dword [eax + 0x14], esi
xor ebx, ebx
mov edi, dword [esp + 8]
test byte [edi + 0x15], 2
je 0x5c3892
test byte [edi + 0xc], 4
je 0x5c3892
mov word [esp + 0x54], si
lea eax, [esp + 0x54]
push 2
push eax
push dword [edi + 0x1c]
call fcn.005c5420
add esp, 0xc
mov dword [edi + 0x1c], eax
xor edx, edx
mov esi, dword [esp + 4]
mov edi, dword [esp + 8]
mov dword [edi + 4], 0x3f39
test byte [edi + 0x15], 4
mov dword [esp], ebp
je 0x5c393e
mov dword [esp + 0x10], ebx
mov eax, dword [edi + 0x44]
cmp eax, ebp
mov ecx, edi
mov ebx, ebp
cmovb ebx, eax
test ebx, ebx
je 0x5c3930
mov ebp, edx
mov dword [esp + 4], esi
mov edi, ecx
mov esi, dword [ecx + 0x24]
test esi, esi
je 0x5c38ff
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x5c38ff
mov edx, dword [esi + 0x14]
mov esi, dword [esi + 0x18]
sub edx, eax
mov eax, esi
sub eax, edx
jbe 0x5c38ff
add ecx, edx
add edx, ebx
cmp edx, esi
cmovbe eax, ebx
push eax
push dword [esp + 8]
push ecx
call fcn.00731570
add esp, 0xc
test byte [edi + 0x15], 2
mov esi, dword [esp + 4]
je 0x5c391f
test byte [edi + 0xc], 4
je 0x5c391f
push ebx
push esi
push dword [edi + 0x1c]
call fcn.005c5420
add esp, 0xc
mov dword [edi + 0x1c], eax
sub dword [esp], ebx
add esi, ebx
mov eax, dword [edi + 0x44]
sub eax, ebx
mov dword [edi + 0x44], eax
mov edx, ebp
jmp 0x5c3932
mov edi, ecx
test eax, eax
mov ebx, dword [esp + 0x10]
jne 0x5c46ff
mov dword [edi + 0x44], 0
mov dword [edi + 4], 0x3f3a
mov eax, dword [esp + 0xc]
test byte [edi + 0x15], 8
jne 0x5c396d
mov eax, dword [edi + 0x24]
test eax, eax
je 0x5c3a02
mov dword [eax + 0x1c], 0
jmp 0x5c3a02
cmp dword [esp], 0
je 0x5c461e
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ebx
xor ebx, ebx
mov ebp, dword [esp]
nop word cs:[eax + eax]
movzx eax, byte [esi + ebx]
mov byte [esp + 4], al
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x5c39c0
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x5c39c0
mov edx, dword [edi + 0x44]
cmp edx, dword [ecx + 0x20]
jae 0x5c39c0
lea ecx, [edx + 1]
mov dword [edi + 0x44], ecx
movzx ecx, byte [esp + 4]
mov byte [eax + edx], cl
nop dword [eax]
inc ebx
cmp byte [esp + 4], 0
je 0x5c39cc
cmp ebx, ebp
jb 0x5c3990
test byte [edi + 0x15], 2
je 0x5c39ea
mov ebp, edi
test byte [edi + 0xc], 4
je 0x5c39ea
push ebx
push esi
push dword [ebp + 0x1c]
call fcn.005c5420
add esp, 0xc
mov dword [ebp + 0x1c], eax
cmp byte [esp + 4], 0
jne 0x5c45da
sub dword [esp], ebx
add esi, ebx
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov dword [edi + 0x44], 0
mov dword [edi + 4], 0x3f3b
test byte [edi + 0x15], 0x10
jne 0x5c3a2d
mov eax, dword [edi + 0x24]
test eax, eax
je 0x5c3ac2
mov dword [eax + 0x24], 0
jmp 0x5c3ac2
cmp dword [esp], 0
je 0x5c46f8
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ebx
xor ebx, ebx
mov ebp, dword [esp]
nop word cs:[eax + eax]
movzx eax, byte [esi + ebx]
mov byte [esp + 4], al
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x5c3a80
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x5c3a80
mov edx, dword [edi + 0x44]
cmp edx, dword [ecx + 0x28]
jae 0x5c3a80
lea ecx, [edx + 1]
mov dword [edi + 0x44], ecx
movzx ecx, byte [esp + 4]
mov byte [eax + edx], cl
nop dword [eax]
inc ebx
cmp byte [esp + 4], 0
je 0x5c3a8c
cmp ebx, ebp
jb 0x5c3a50
test byte [edi + 0x15], 2
je 0x5c3aaa
mov ebp, edi
test byte [edi + 0xc], 4
je 0x5c3aaa
push ebx
push esi
push dword [ebp + 0x1c]
call fcn.005c5420
add esp, 0xc
mov dword [ebp + 0x1c], eax
cmp byte [esp + 4], 0
jne 0x5c45da
sub dword [esp], ebx
add esi, ebx
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov dword [edi + 4], 0x3f3c
mov eax, dword [edi + 0x14]
test eax, 0x200
jne 0x5c3ade
mov ebp, ebx
mov ebx, edi
mov edi, esi
jmp 0x5c3b6f
cmp edx, 0xf
mov dword [esp + 4], esi
ja 0x5c3b42
mov ecx, dword [esp]
test ecx, ecx
je 0x5c46f8
mov dword [esp], ecx
mov ebp, ebx
mov ebx, edx
lea edx, [ecx - 1]
movzx edi, byte [esi]
mov ecx, ebx
shl edi, cl
inc esi
add ebp, edi
mov dword [esp + 0x10], ebp
lea ecx, [ebx + 8]
cmp ebx, 7
ja 0x5c3b48
mov edi, ebx
test edx, edx
mov ebx, dword [esp + 8]
je 0x5c466e
mov esi, dword [esp + 4]
movzx edx, byte [esi + 1]
shl edx, cl
add dword [esp], 0xfffffffe
add esi, 2
mov dword [esp + 4], esi
mov esi, dword [esp + 0x10]
add esi, edx
mov edx, edi
or edx, 0x10
jmp 0x5c3b59
mov esi, ebx
mov ebx, edi
jmp 0x5c3b59
mov dword [esp + 4], esi
mov dword [esp], edx
mov edx, ecx
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x10]
test byte [ebx + 0xc], 4
je 0x5c3b67
movzx ecx, word [ebx + 0x1c]
cmp esi, ecx
jne 0x5c3bbb
mov edi, dword [esp + 4]
xor edx, edx
xor ebp, ebp
mov esi, edx
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x5c3b8b
shr eax, 9
and eax, 1
mov dword [ecx + 0x2c], eax
mov eax, dword [ebx + 0x24]
mov dword [eax + 0x30], 1
push 0
push 0
push 0
call fcn.005c5420
add esp, 0xc
mov dword [ebx + 0x1c], eax
mov ecx, dword [esp + 0x70]
mov dword [ecx + 0x30], eax
mov dword [ebx + 4], 0x3f3f
mov edx, esi
mov esi, edi
mov edi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x1c]
jmp 0x5c27d4
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc5a5
mov dword [ebx + 4], 0x3f51
mov edi, ebx
mov ebp, dword [esp + 0x1c]
mov ebx, esi
mov esi, dword [esp + 4]
jmp 0x5c27d4
mov eax, ebx
and eax, 0xf
cmp eax, 8
jne 0x5c4428
mov ecx, edi
mov edi, edx
mov dword [esp + 4], esi
mov esi, ebp
mov ebp, ecx
mov dword [esp + 0x10], ebx
mov eax, ebx
shr eax, 4
mov ecx, eax
and ecx, 0xf
lea edx, [ecx + 8]
mov ebx, ebp
cmp dword [ebp + 0x28], 0
jne 0x5c3c14
mov dword [ebx + 0x28], edx
cmp ecx, 7
ja 0x5c3c22
cmp edx, dword [ebx + 0x28]
jbe 0x5c445e
mov edx, edi
add edx, 0xfffffffc
mov ebp, dword [esp + 0x70]
mov dword [ebp + 0x18], 0x7dc578
mov edi, ebx
mov dword [ebx + 4], 0x3f51
mov ebx, eax
mov ebp, esi
mov esi, dword [esp + 4]
jmp 0x5c27d4
mov dword [esp], edx
mov edx, eax
mov ebx, esi
mov esi, ecx
jmp 0x5c2c99
mov dword [esp], esi
mov esi, ecx
mov ebx, dword [esp + 0x10]
bswap ebx
mov dword [edi + 0x1c], ebx
mov eax, dword [esp + 0x70]
mov dword [eax + 0x30], ebx
mov dword [edi + 4], 0x3f3e
xor ebx, ebx
xor edx, edx
mov eax, dword [esp + 0xc]
cmp dword [edi + 0x10], 0
je 0x5c462e
push 0
push 0
push 0
mov ebp, ebx
mov ebx, edi
mov edi, esi
mov esi, edx
call fcn.005c4ef0
mov edx, esi
mov esi, edi
mov edi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x28]
add esp, 0xc
mov dword [edi + 0x1c], eax
mov ecx, dword [esp + 0x70]
mov dword [ecx + 0x30], eax
mov dword [edi + 4], 0x3f3f
cmp dword [esp + 0x50], 2
mov eax, dword [esp + 0xc]
jb 0x5c4615
cmp dword [edi + 8], 0
je 0x5c3ce2
mov ecx, edx
and cl, 7
shr ebx, cl
and edx, 0xfffffff8
mov dword [edi + 4], 0x3f4e
jmp 0x5c27d4
cmp edx, 2
ja 0x5c3d0b
mov edi, dword [esp]
test edi, edi
je 0x5c470d
mov eax, edx
or eax, 8
mov ecx, edx
movzx edx, byte [esi]
shl edx, cl
dec edi
mov dword [esp], edi
inc esi
add ebx, edx
mov edx, eax
mov edi, dword [esp + 8]
mov eax, ebx
and eax, 1
mov dword [edi + 8], eax
mov ecx, ebx
shr ecx, 1
and ecx, 3
mov eax, 0x3f41
jmp dword [ecx*4 + 0x7dc790]
mov dword [edi + 0x50], 0x7dbcc6
mov dword [edi + 0x58], 9
mov dword [edi + 0x54], 0x7dc4c6
mov dword [edi + 0x5c], 5
mov dword [edi + 4], 0x3f47
cmp dword [esp + 0x74], 6
jne 0x5c3d6f
jmp 0x5c49d1
mov eax, 0x3f44
jmp case.0x5c3d1f.0
mov dword [edi + 4], eax
shr ebx, 3
add edx, 0xfffffffd
mov ebp, dword [esp + 0x1c]
jmp 0x5c27d4
mov dword [esp + 0x14], 0
mov dword [edi + 4], 0x3f47
cmp dword [esp + 0x74], 6
mov edx, esi
mov esi, dword [esp + 4]
je 0x5c4ad1
mov dword [edi + 4], 0x3f48
mov eax, dword [esp + 0x28]
cmp dword [esp], 6
jb 0x5c3e19
cmp ebp, 0x102
jb 0x5c3e19
mov ecx, dword [esp + 0xc]
mov edi, esi
mov esi, dword [esp + 0x70]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], ebp
mov dword [esi], edi
mov ecx, dword [esp]
mov dword [esi + 4], ecx
mov edi, dword [esp + 8]
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x40], edx
push eax
push esi
call fcn.005c7ba0
add esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp + 0xc], eax
mov ebp, dword [esi + 0x10]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp], ecx
mov esi, eax
mov ebx, dword [edi + 0x3c]
mov edx, dword [edi + 0x40]
cmp dword [edi + 4], 0x3f3f
jne 0x5c27d4
mov dword [edi + 0x1bc8], 0xffffffff
jmp 0x5c27d4
mov eax, dword [esp + 8]
mov dword [eax + 0x1bc8], 0
movzx ecx, byte [eax + 0x58]
mov ebp, 0xffffffff
shl ebp, cl
mov edi, dword [eax + 0x50]
not ebp
mov ecx, ebx
mov dword [esp + 0x20], ebp
and ecx, ebp
movzx eax, byte [edi + ecx*4 + 1]
movzx ebp, al
mov dword [esp + 0x24], ebp
cmp edx, ebp
mov dword [esp + 0x10], edi
jae 0x5c3ea7
mov ecx, edx
mov edx, ebx
mov dword [esp + 0x18], ecx
mov edi, dword [esp]
mov dword [esp + 4], esi
mov ebx, esi
sub edi, 1
jb 0x5c44e3
movzx eax, byte [ebx]
shl eax, cl
inc ebx
mov esi, edx
add esi, eax
add ecx, 8
mov edx, esi
and esi, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + esi*4 + 1]
movzx ebp, al
cmp ecx, ebp
jb 0x5c3e64
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x10]
lea ebp, [ebp + esi*4]
mov esi, ebx
mov dword [esp], edi
mov ebx, edx
mov edx, ecx
jmp 0x5c3eaa
lea ebp, [edi + ecx*4]
movzx edi, word [ebp + 2]
mov ch, byte [ebp]
mov cl, ch
dec cl
cmp cl, 0xe
ja 0x5c3f70
mov dword [esp + 4], esi
movzx ecx, ch
mov eax, dword [esp + 0x24]
add ecx, eax
mov ebp, eax
mov eax, 0xffffffff
shl eax, cl
mov dword [esp + 0x18], edx
movzx edx, di
not eax
mov esi, ebx
mov dword [esp + 0x20], eax
and esi, eax
mov ecx, ebp
shr esi, cl
mov eax, dword [esp + 0x10]
lea edi, [eax + edx*4]
mov edx, dword [esp + 0x18]
movzx eax, byte [edi + esi*4 + 1]
lea ecx, [eax + ebp]
cmp ecx, edx
mov ebp, dword [esp + 0x1c]
jbe 0x5c3f7f
mov dword [esp + 0x2c], edi
mov dword [esp + 0x10], ebx
mov ebx, edx
mov ebp, dword [esp]
mov edi, dword [esp + 4]
sub ebp, 1
jb 0x5c4570
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
inc edi
mov esi, dword [esp + 0x10]
add esi, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], esi
and esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
shr esi, cl
add ebx, 8
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + esi*4 + 1]
add ecx, eax
cmp ecx, ebx
ja 0x5c3f15
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + esi*4]
mov dword [esp + 0x20], ecx
mov esi, edi
mov dword [esp], ebp
mov edx, ebx
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
jmp 0x5c3f8e
mov ebp, dword [esp + 0x1c]
mov word [esp + 4], di
mov edi, dword [esp + 8]
jmp 0x5c3fbe
lea ecx, [edi + esi*4]
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 4]
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x24]
shr ebx, cl
mov ecx, dword [esp + 0x20]
movzx ecx, word [ecx + 2]
mov word [esp + 4], cx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx]
mov byte [esp + 0x10], cl
sub edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov dword [edi + 0x1bc8], ecx
mov ch, byte [esp + 0x10]
mov cl, al
shr ebx, cl
movzx eax, al
add dword [edi + 0x1bc8], eax
sub edx, eax
movzx eax, word [esp + 4]
mov dword [edi + 0x44], eax
test ch, ch
je 0x5c43ef
movzx eax, ch
test al, 0x20
jne 0x5c43fb
test al, 0x40
jne 0x5c4411
and eax, 0xf
mov dword [edi + 0x4c], eax
mov dword [edi + 4], 0x3f49
test eax, eax
jne 0x5c28a0
mov dword [esp + 4], esi
mov esi, edi
mov eax, dword [esi + 0x44]
mov dword [esi + 0x1bcc], eax
mov dword [esi + 4], 0x3f4a
movzx ecx, byte [esi + 0x5c]
mov eax, 0xffffffff
shl eax, cl
mov ebp, dword [esi + 0x54]
not eax
mov ecx, ebx
mov dword [esp + 0x10], eax
and ecx, eax
movzx eax, byte [ebp + ecx*4 + 1]
movzx esi, al
mov dword [esp + 0x24], esi
cmp edx, esi
mov dword [esp + 0x20], ebp
jae 0x5c409b
mov ecx, edx
mov edx, ebx
mov dword [esp + 0x18], ecx
mov edi, dword [esp]
mov ebx, dword [esp + 4]
sub edi, 1
jb 0x5c44e3
movzx eax, byte [ebx]
shl eax, cl
inc ebx
mov esi, edx
add esi, eax
add ecx, 8
mov edx, esi
and esi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + esi*4 + 1]
movzx ebp, al
cmp ecx, ebp
jb 0x5c4056
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x20]
lea ebp, [ebp + esi*4]
mov esi, ebx
mov dword [esp], edi
mov dword [esp + 0x10], edx
mov edx, ecx
jmp 0x5c40a7
mov dword [esp + 0x10], ebx
lea ebp, [ebp + ecx*4]
mov esi, dword [esp + 4]
movzx edi, word [ebp + 2]
movzx ebx, byte [ebp]
cmp ebx, 0xf
mov ecx, dword [esp + 0x24]
ja 0x5c4155
mov dword [esp + 4], esi
add ebx, ecx
mov eax, 0xffffffff
mov ebp, ecx
mov ecx, ebx
shl eax, cl
mov dword [esp + 0x18], edx
movzx edx, di
not eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
and esi, eax
mov ecx, ebp
shr esi, cl
mov eax, dword [esp + 0x20]
lea edi, [eax + edx*4]
mov edx, dword [esp + 0x18]
movzx eax, byte [edi + esi*4 + 1]
lea ecx, [eax + ebp]
cmp ecx, edx
jbe 0x5c4164
mov dword [esp + 0x20], edi
mov ebx, edx
mov ebp, dword [esp]
mov edi, dword [esp + 4]
sub ebp, 1
jb 0x5c4570
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
inc edi
mov esi, dword [esp + 0x10]
add esi, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], esi
and esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
shr esi, cl
add ebx, 8
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + esi*4 + 1]
add ecx, eax
cmp ecx, ebx
ja 0x5c4108
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + esi*4]
mov esi, edi
mov dword [esp], ebp
mov edx, ebx
mov ebx, ecx
jmp 0x5c416b
mov word [esp + 4], di
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x10]
jmp 0x5c418d
lea ebx, [edi + esi*4]
mov esi, dword [esp + 4]
mov edi, dword [esp + 8]
movzx ecx, word [ebx + 2]
mov word [esp + 4], cx
movzx ebx, byte [ebx]
mov ecx, dword [esp + 0x24]
sub edx, ecx
add dword [edi + 0x1bc8], ecx
mov ebp, dword [esp + 0x10]
shr ebp, cl
mov ecx, eax
shr ebp, cl
mov dword [esp + 0x10], ebp
movzx eax, al
add dword [edi + 0x1bc8], eax
sub edx, eax
movzx ecx, bl
test cl, 0x40
jne 0x5c4205
movzx eax, word [esp + 4]
mov dword [edi + 0x48], eax
and ecx, 0xf
mov dword [edi + 0x4c], ecx
mov dword [edi + 4], 0x3f4b
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
test ecx, ecx
je 0x5c4252
mov edi, ebx
cmp edx, ecx
jae 0x5c4224
mov dword [esp + 0x18], edx
mov ebx, dword [esp]
mov ebp, esi
mov dword [esp + 4], ecx
sub ebx, 1
jb 0x5c454a
mov eax, esi
movzx esi, byte [ebp]
mov ecx, edx
shl esi, cl
inc ebp
add edi, esi
mov esi, eax
mov ecx, dword [esp + 4]
add edx, 8
cmp edx, ecx
jb 0x5c41e0
jmp 0x5c4229
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc6b3
mov dword [edi + 4], 0x3f51
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
jmp 0x5c27d4
mov ebp, esi
mov ebx, dword [esp]
mov esi, 0xffffffff
shl esi, cl
not esi
and esi, edi
mov eax, dword [esp + 8]
add dword [eax + 0x48], esi
shr edi, cl
add dword [eax + 0x1bc8], ecx
sub edx, ecx
mov esi, ebp
mov dword [esp], ebx
mov ebx, edi
mov edi, eax
mov ebp, dword [esp + 0x1c]
mov dword [edi + 4], 0x3f4c
mov eax, dword [esp + 0x28]
test ebp, ebp
je 0x5c46ff
mov dword [esp + 0x18], edx
sub eax, ebp
mov edx, dword [edi + 0x48]
mov ecx, edx
sub ecx, eax
mov dword [esp + 0x10], ebx
jbe 0x5c42a1
cmp ecx, dword [edi + 0x30]
jbe 0x5c42b2
cmp dword [edi + 0x1bc4], 0
je 0x5c42b2
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc6c9
mov dword [edi + 4], 0x3f51
mov edx, dword [esp + 0x18]
jmp 0x5c27d4
mov ebx, edi
mov edi, esi
mov esi, ebp
mov eax, dword [esp + 0xc]
sub eax, edx
mov ebp, dword [ebx + 0x44]
jmp 0x5c42da
mov ebx, edi
mov edi, esi
mov eax, dword [ebx + 0x34]
mov edx, ecx
mov esi, ebp
sub edx, eax
jbe 0x5c42cb
mov eax, dword [ebx + 0x2c]
sub eax, edx
add eax, dword [ebx + 0x38]
jmp 0x5c42d2
sub eax, ecx
add eax, dword [ebx + 0x38]
mov edx, ecx
mov ebp, dword [ebx + 0x44]
cmp edx, ebp
cmovb ebp, edx
cmp ebp, esi
cmovae ebp, esi
sub dword [ebx + 0x44], ebp
cmp ebp, 0x10
mov dword [esp + 4], edi
jb 0x5c432c
mov edx, dword [esp + 0xc]
sub edx, eax
cmp edx, 0x10
jb 0x5c432c
mov ebx, edi
mov edi, ebp
and edi, 0xfffffff0
mov ecx, ebp
and ecx, 0xf
xor esi, esi
mov edx, dword [esp + 0xc]
movups xmm0, xmmword [eax + esi]
movups xmmword [edx + esi], xmm0
add esi, 0x10
cmp edi, esi
jne 0x5c4308
add edx, edi
mov dword [esp + 0xc], edx
cmp ebp, edi
jne 0x5c4330
mov edi, dword [esp + 8]
mov esi, ebx
jmp 0x5c43c9
mov ecx, ebp
jmp 0x5c4332
add eax, edi
mov edx, dword [esp + 0x18]
mov edi, ecx
mov ebx, ecx
and edi, 7
je 0x5c435e
and ebx, 0xfffffff8
mov esi, dword [esp + 0xc]
movzx edx, byte [eax]
inc eax
mov byte [esi], dl
inc esi
dec edi
jne 0x5c4346
mov dword [esp + 0xc], esi
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x18]
jmp 0x5c4362
mov esi, dword [esp + 4]
dec ecx
cmp ecx, 7
mov edi, dword [esp + 8]
jb 0x5c43cd
xor edx, edx
mov esi, dword [esp + 0xc]
movzx ecx, byte [eax + edx]
mov byte [esi + edx], cl
movzx ecx, byte [eax + edx + 1]
mov byte [esi + edx + 1], cl
movzx ecx, byte [eax + edx + 2]
mov byte [esi + edx + 2], cl
movzx ecx, byte [eax + edx + 3]
mov byte [esi + edx + 3], cl
movzx ecx, byte [eax + edx + 4]
mov byte [esi + edx + 4], cl
movzx ecx, byte [eax + edx + 5]
mov byte [esi + edx + 5], cl
movzx ecx, byte [eax + edx + 6]
mov byte [esi + edx + 6], cl
movzx ecx, byte [eax + edx + 7]
mov byte [esi + edx + 7], cl
add edx, 8
cmp ebx, edx
jne 0x5c4372
add esi, edx
mov dword [esp + 0xc], esi
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
sub eax, ebp
mov ebp, eax
cmp dword [edi + 0x44], 0
mov ebx, dword [esp + 0x10]
jne 0x5c27d4
mov dword [edi + 4], 0x3f48
jmp 0x5c27d4
mov dword [edi + 4], 0x3f4d
jmp 0x5c27d4
mov dword [edi + 0x1bc8], 0xffffffff
mov dword [edi + 4], 0x3f3f
jmp 0x5c27d4
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc697
mov dword [edi + 4], 0x3f51
jmp 0x5c27d4
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc55d
mov dword [edi + 4], 0x3f51
jmp 0x5c27d4
mov eax, dword [esp + 0x70]
mov dword [eax + 0x18], 0x7dc626
mov dword [edi + 4], 0x3f51
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
jmp 0x5c27d4
mov eax, 0x100
shl eax, cl
mov edi, ebx
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x14], 0
push 0
push 0
push 0
call fcn.005c4ef0
add esp, 0xc
mov dword [ebx + 0x1c], eax
mov ebp, dword [esp + 0x70]
mov dword [ebp + 0x30], eax
xor eax, eax
test dword [esp + 0x10], 0x2000
sete al
lea eax, [eax*2 + 0x3f3d]
mov dword [ebx + 4], eax
xor edx, edx
mov ebp, esi
xor ebx, ebx
mov esi, dword [esp + 4]
jmp 0x5c27d4
mov ecx, dword [esp + 0x70]
mov dword [ecx + 0x18], 0x7dc626
mov edi, dword [esp + 8]
mov dword [edi + 4], 0x3f51
mov edx, eax
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 4]
jmp 0x5c27d4
cmp dword [edx + 4], 0
jne 0x5c4919
jmp 0x5c275f
mov eax, dword [esp]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + eax*8]
mov esi, dword [esp + 4]
add esi, eax
mov dword [esp], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ebx, edx
mov edx, ecx
mov ecx, dword [esp + 4]
jmp 0x5c4733
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
lea edx, [edx + eax*8]
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp], 0
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0xc]
mov ebx, esi
mov esi, ecx
mov ecx, edi
jmp 0x5c472f
mov eax, dword [esp]
mov edx, dword [esp + 0x18]
lea edx, [edx + eax*8]
add esi, eax
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0xc]
mov ebx, edi
mov dword [esp], 0
jmp 0x5c472f
mov eax, dword [esp]
lea edx, [edx + eax*8]
mov esi, dword [esp + 4]
add esi, eax
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
jmp 0x5c4733
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
mov ebx, edi
jmp 0x5c472f
mov dword [esp], 0
mov edx, eax
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ebx, esi
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 4]
jmp 0x5c4733
add esi, ebx
sub dword [esp], ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
jmp 0x5c4733
xor ebx, ebx
xor edx, edx
mov dword [edi + 4], 0x3f50
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
mov ecx, 1
jmp 0x5c4733
mov ecx, dword [esp + 0x14]
jmp 0x5c4707
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
jmp 0x5c4707
mov ecx, dword [esp + 0x70]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], ebp
mov dword [ecx], esi
mov eax, dword [esp]
mov dword [ecx + 4], eax
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x40], edx
mov esi, 2
jmp 0x5c4919
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [esp], ebx
mov ebp, dword [esp + 0x70]
mov ebx, esi
mov esi, dword [esp + 4]
jmp 0x5c4733
mov edx, ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov ebp, dword [esp + 0x70]
mov edi, ebx
mov ebx, ecx
mov ecx, dword [esp + 4]
jmp 0x5c4733
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebx, esi
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 8]
mov esi, dword [esp + 4]
jmp 0x5c4733
mov ecx, 0xfffffffd
jmp case.0x5c27f0.28
mov esi, 0xfffffffe
jmp 0x5c4919
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov dword [esp], 0
mov ebp, dword [esp + 0x70]
mov ecx, ebx
mov ebx, edi
mov edi, ecx
mov ecx, edx
mov edx, dword [esp + 0x18]
jmp 0x5c4733
mov esi, edx
mov dword [esp], 0
mov edx, ecx
jmp 0x5c4723
mov esi, ecx
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
jmp 0x5c4733
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
jmp 0x5c472b
mov esi, ecx
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 8]
mov dword [esp + 4], ecx
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x10], eax
mov dword [ebp], esi
mov eax, dword [esp]
mov dword [ebp + 4], eax
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x40], edx
cmp dword [edi + 0x2c], 0
je 0x5c47fa
mov edx, ebp
mov ebp, dword [esp + 0x28]
mov esi, dword [edx + 0xc]
mov edi, dword [edx + 0x1c]
sub ebp, dword [edx + 0x10]
cmp dword [edi + 0x38], 0
jne 0x5c4791
movzx ecx, byte [edi + 0x28]
mov eax, 1
shl eax, cl
push 1
push eax
push dword [edx + 0x28]
call dword [edx + 0x20]
add esp, 0xc
mov dword [edi + 0x38], eax
test eax, eax
je 0x5c495c
cmp dword [edi + 0x2c], 0
jne 0x5c47b3
movzx ecx, byte [edi + 0x28]
mov eax, 1
shl eax, cl
mov dword [edi + 0x2c], eax
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov ebx, dword [edi + 0x2c]
cmp ebx, ebp
jbe 0x5c482b
mov eax, dword [edi + 0x34]
sub ebx, eax
cmp ebx, ebp
mov edx, ebp
cmovb edx, ebx
add eax, dword [edi + 0x38]
mov ecx, esi
sub ecx, ebp
mov dword [esp], edx
push edx
push ecx
push eax
call fcn.00731570
add esp, 0xc
cmp ebx, ebp
jae 0x5c492e
sub ebp, dword [esp]
sub esi, ebp
push ebp
push esi
push dword [edi + 0x38]
call fcn.00731570
add esp, 0xc
mov dword [edi + 0x34], ebp
jmp 0x5c4841
mov eax, dword [esp + 0x28]
cmp eax, dword [ebp + 0x10]
je 0x5c484b
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
cmp eax, 0x3f50
jg 0x5c484b
cmp eax, 0x3f4e
setge al
cmp dword [esp + 0x74], 4
sete cl
test cl, al
je 0x5c475a
jmp 0x5c484b
sub esi, ebx
push ebx
push esi
push dword [edi + 0x38]
call fcn.00731570
add esp, 0xc
mov dword [edi + 0x34], 0
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x30], eax
mov ebp, dword [esp + 0x70]
mov ecx, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x48]
mov dword [esp], ecx
sub eax, ecx
add dword [ebp + 8], eax
mov esi, dword [esp + 0x28]
mov eax, esi
sub eax, edi
add dword [ebp + 0x14], eax
mov ecx, dword [esp + 8]
add dword [ecx + 0x20], eax
test byte [ecx + 0xc], 4
je 0x5c48ae
cmp esi, edi
je 0x5c48ae
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov edx, dword [esp + 8]
cmp dword [edx + 0x14], 0
mov edx, dword [edx + 0x1c]
je 0x5c4895
push eax
push ecx
push edx
call fcn.005c5420
jmp 0x5c489d
push eax
push ecx
push edx
call fcn.005c4ef0
add esp, 0xc
mov ecx, dword [esp + 8]
mov dword [ecx + 0x1c], eax
mov dword [ebp + 0x30], eax
mov esi, dword [esp + 0x28]
xor eax, eax
mov ecx, dword [esp + 8]
cmp dword [ecx + 8], 0
setne al
shl eax, 6
add eax, dword [ecx + 0x40]
mov edx, dword [ecx + 4]
xor ecx, ecx
cmp edx, 0x3f3f
sete cl
shl ecx, 7
cmp edx, 0x3f47
sete bl
cmp edx, 0x3f42
sete dl
or dl, bl
movzx edx, dl
shl edx, 8
add edx, ecx
add edx, eax
mov ecx, dword [esp + 0x48]
xor ecx, dword [esp]
xor esi, edi
mov edi, dword [esp + 4]
test edi, edi
mov eax, 0xfffffffb
cmovne eax, edi
mov dword [ebp + 0x2c], edx
or esi, ecx
cmove edi, eax
cmp dword [esp + 0x74], 4
cmove edi, eax
mov esi, edi
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00719989
mov eax, esi
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [edi + 0x34]
mov ebx, dword [esp]
add ecx, ebx
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0x30]
xor esi, esi
cmp ecx, edx
cmovne esi, ecx
mov dword [edi + 0x34], esi
cmp eax, edx
mov ebp, dword [esp + 0x70]
jae 0x5c484b
add eax, ebx
mov dword [edi + 0x30], eax
jmp 0x5c484b
mov eax, dword [esp + 8]
mov dword [eax + 4], 0x3f52
mov esi, 0xfffffffc
jmp 0x5c4919
mov dword [esp], 0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
mov edx, ecx
jmp 0x5c4543
mov dword [esp], 0
mov edx, eax
jmp 0x5c49e3
xor edx, edx
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
mov edi, ecx
mov ecx, esi
xor ebx, ebx
mov esi, dword [esp + 4]
jmp 0x5c4733
mov dword [esp], 0
mov edx, ecx
jmp 0x5c49e3
mov dword [esp], 0
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 8]
jmp 0x5c4a76
shr ebx, 3
add edx, 0xfffffffd
jmp 0x5c46ff
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 8]
jmp case.0x5c27f0.28
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
mov edx, edi
jmp 0x5c472f
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebx, edi
mov dword [esp], 0
jmp 0x5c472b
mov esi, ebp
mov dword [esp], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x5c4687
mov dword [esp], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
mov ecx, esi
mov esi, ebp
jmp 0x5c4687
mov esi, edx
mov dword [esp], 0
mov edx, ecx
jmp 0x5c4a72
mov esi, ecx
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x10]
jmp 0x5c4733
mov esi, edx
mov dword [esp], 0
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x10]
jmp 0x5c472f
mov dword [esp], 0
mov edx, ecx
jmp 0x5c46ff
mov dword [esp], 0
mov edx, eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebx, esi
mov esi, ecx
mov ecx, edi
jmp 0x5c472b
xor ecx, ecx
jmp case.0x5c27f0.28