Function at 0x57b330
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa0
mov esi, dword [esp + 0xb8]
cmp esi, 0xa
jb 0x57bb49
mov eax, dword [esp + 0xb4]
movzx ebp, word [eax]
movzx ebx, word [eax + 2]
movzx edi, word [eax + 4]
mov dword [esp + 0x48], ebx
lea eax, [ebx + ebp]
add eax, 6
add eax, edi
sub esi, eax
jb 0x57bb49
mov dword [esp + 0x58], edi
lea eax, [ecx + edx]
mov dword [esp + 0x88], edx
lea edi, [edx + 3]
shr edi, 2
mov dword [esp], ecx
add ecx, edi
lea ebx, [ecx + edi]
mov dword [esp + 0x2c], ebx
add edi, ebx
cmp edi, eax
ja 0x57bb49
mov dword [esp + 0x68], eax
mov eax, 0xffffffb8
test ebp, ebp
je 0x57bb4e
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0xbc]
mov dword [esp + 0xc], esi
movzx esi, word [esi + 2]
mov dword [esp + 0x38], esi
cmp bp, 4
mov dword [esp + 0x3c], edi
mov ebx, dword [esp + 0xb4]
jb 0x57b3fd
movzx edi, byte [ebx + ebp + 5]
test edi, edi
je 0x57b5d7
lea esi, [ebp + 2]
mov dword [esp + 0x20], esi
mov esi, dword [ebx + esi]
mov dword [esp + 0x44], esi
bsr esi, edi
xor esi, 0x1f
add esi, 0xffffffe9
mov dword [esp + 0x10], esi
jmp 0x57b44e
movzx esi, byte [ebx + 6]
cmp bp, 2
je 0x57b416
cmp bp, 3
jne 0x57b41f
movzx edi, byte [ebx + 8]
shl edi, 0x10
or esi, edi
movzx edi, byte [ebx + 7]
shl edi, 8
add esi, edi
movzx edi, byte [ebx + ebp + 5]
test edi, edi
je 0x57bb49
mov dword [esp + 0x44], esi
bsr esi, edi
xor esi, 0x1f
lea edi, [ebp*8]
sub esi, edi
add esi, 9
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], 6
mov esi, dword [esp + 0x48]
test esi, esi
je 0x57bb4e
lea edi, [ebx + ebp]
add edi, 6
cmp si, 4
mov dword [esp + 0x4c], ecx
jb 0x57b48c
movzx ecx, byte [esi + edi - 1]
test ecx, ecx
je 0x57b5d7
lea ebp, [esi - 4]
mov ebx, dword [edi + ebp]
bsr ecx, ecx
xor ecx, 0x1f
add ecx, 0xffffffe9
mov dword [esp + 0x18], ecx
jmp 0x57b4da
movzx ebx, byte [edi]
cmp si, 2
je 0x57b4a4
cmp si, 3
jne 0x57b4ad
movzx ecx, byte [edi + 2]
shl ecx, 0x10
or ebx, ecx
movzx ecx, byte [edi + 1]
shl ecx, 8
add ebx, ecx
movzx ecx, byte [esi + edi - 1]
test ecx, ecx
je 0x57bb49
bsr esi, ecx
xor esi, 0x1f
mov ecx, dword [esp + 0x48]
lea ecx, [ecx*8]
sub esi, ecx
add esi, 9
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x48]
xor ebp, ebp
mov edx, dword [esp + 0x58]
test edx, edx
je 0x57bb4e
add esi, edi
cmp dx, 4
mov dword [esp + 0x48], esi
jb 0x57b522
movzx ecx, byte [edx + esi - 1]
test ecx, ecx
je 0x57b5d7
mov dword [esp + 0x64], ebx
mov ebx, esi
lea esi, [edx - 4]
mov dword [esp + 0x70], esi
mov esi, dword [ebx + esi]
mov dword [esp + 0x54], esi
bsr ecx, ecx
xor ecx, 0x1f
add ecx, 0xffffffe9
mov dword [esp + 0x1c], ecx
jmp 0x57b58e
movzx ecx, byte [esi]
mov dword [esp + 0x54], ecx
cmp dx, 2
je 0x57b546
cmp dx, 3
jne 0x57b55b
movzx ecx, byte [esi + 2]
shl ecx, 0x10
mov edx, esi
mov esi, dword [esp + 0x54]
or esi, ecx
jmp 0x57b54c
mov edx, esi
mov esi, dword [esp + 0x54]
movzx ecx, byte [edx + 1]
shl ecx, 8
add esi, ecx
mov dword [esp + 0x54], esi
mov esi, edx
mov edx, dword [esp + 0x58]
movzx ecx, byte [edx + esi - 1]
test ecx, ecx
je 0x57bb49
mov dword [esp + 0x64], ebx
bsr esi, ecx
xor esi, 0x1f
lea ecx, [edx*8]
sub esi, ecx
add esi, 9
mov dword [esp + 0x1c], esi
mov dword [esp + 0x70], 0
mov esi, edx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x57bb4e
add esi, dword [esp + 0x48]
cmp ecx, 4
mov edx, esi
jb 0x57b5e1
movzx eax, byte [ecx + esi - 1]
test eax, eax
je 0x57b5d7
cmp ecx, 0xffffff88
ja 0x57b9e7
mov dword [esp + 0x6c], ebp
mov esi, dword [edx + ecx - 4]
mov dword [esp + 0x40], esi
add ecx, 0xfffffffc
mov dword [esp + 0x24], ecx
bsr ebx, eax
xor ebx, 0x1f
add ebx, 0xffffffe9
jmp 0x57b641
mov eax, 0xffffffff
jmp 0x57bb4e
movzx eax, byte [esi]
mov dword [esp + 0x40], eax
cmp ecx, 2
je 0x57b603
mov esi, edx
cmp ecx, 3
jne 0x57b616
movzx eax, byte [edx + 2]
shl eax, 0x10
mov ecx, dword [esp + 0x40]
or ecx, eax
jmp 0x57b609
mov ecx, dword [esp + 0x40]
mov esi, edx
movzx eax, byte [esi + 1]
shl eax, 8
add ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x24]
movzx eax, byte [ecx + esi - 1]
test eax, eax
je 0x57bb49
mov dword [esp + 0x6c], ebp
bsr ebx, eax
xor ebx, 0x1f
shl ecx, 3
sub ebx, ecx
add ebx, 9
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x88]
mov esi, dword [esp]
lea ebp, [esi + eax]
add ebp, 0xfffffffd
add dword [esp + 0xc], 4
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x3c]
sub eax, ecx
cmp eax, 4
mov dword [esp + 0x58], edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x74], ebp
jb 0x57b9ee
cmp ecx, ebp
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov edx, ecx
jae 0x57ba22
mov dword [esp + 0x7c], ebx
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 8], eax
mov dword [esp + 0x84], 1
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x78], edx
mov edi, dword [esp]
mov ecx, ebp
mov dword [esp + 0x24], esi
mov ebp, dword [esp + 0x44]
mov eax, ebp
mov edx, ecx
shl eax, cl
mov ebx, dword [esp + 8]
mov ecx, ebx
shr eax, cl
mov esi, dword [esp + 0xc]
movzx ecx, word [esi + eax*4]
mov word [edi], cx
mov ecx, edx
movzx edx, byte [esi + eax*4 + 2]
add edx, ecx
mov ecx, edx
mov dword [esp + 0x14], edx
movzx edx, byte [esi + eax*4 + 3]
mov eax, ebp
shl eax, cl
mov ecx, ebx
shr eax, cl
movzx ecx, word [esi + eax*4]
mov dword [esp], edi
mov dword [esp + 4], edx
mov word [edi + edx], cx
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x18]
mov ecx, ebx
shl edi, cl
movzx edx, byte [esi + eax*4 + 2]
mov ecx, dword [esp + 8]
shr edi, cl
movzx eax, byte [esi + eax*4 + 3]
mov dword [esp + 0x9c], eax
movzx eax, word [esi + edi*4]
mov ebp, dword [esp + 0x34]
mov word [ebp], ax
movzx ecx, byte [esi + edi*4 + 2]
add ecx, ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
shl ebx, cl
add edx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
shr ebx, cl
movzx ecx, byte [esi + edi*4 + 3]
movzx eax, word [esi + ebx*4]
mov dword [esp + 0x94], ecx
mov word [ebp + ecx], ax
mov edi, dword [esp + 0x20]
cmp edi, 0xa
jl 0x57b9bd
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0xb4]
mov eax, dword [eax + edi]
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + ebx*4 + 2]
mov esi, dword [esp + 0x18]
add esi, eax
movzx eax, byte [ecx + ebx*4 + 3]
mov dword [esp + 0x98], eax
cmp ebp, 4
mov dword [esp + 0x28], edi
jl 0x57b9c6
mov eax, esi
shr eax, 3
mov ecx, ebp
sub ecx, eax
and esi, 7
mov dword [esp + 0x18], esi
mov dword [esp + 0x5c], ecx
mov eax, dword [edx + ecx]
mov dword [esp + 0x64], eax
mov edi, dword [esp + 0x54]
mov eax, edi
mov edx, dword [esp + 0x1c]
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 8]
shr eax, cl
mov esi, dword [esp + 0xc]
movzx ecx, word [esi + eax*4]
mov ebp, dword [esp + 0x30]
mov word [ebp], cx
movzx ecx, byte [esi + eax*4 + 2]
add ecx, edx
mov dword [esp + 0x1c], ecx
movzx ebx, byte [esi + eax*4 + 3]
shl edi, cl
mov edx, dword [esp + 8]
mov ecx, edx
shr edi, cl
movzx eax, word [esi + edi*4]
mov dword [esp + 0x8c], ebx
mov word [ebp + ebx], ax
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x7c]
mov ecx, ebx
shl eax, cl
movzx ebp, byte [esi + edi*4 + 2]
mov ecx, edx
shr eax, cl
movzx ecx, byte [esi + edi*4 + 3]
mov dword [esp + 0x90], ecx
movzx ecx, word [esi + eax*4]
mov edi, dword [esp + 0x78]
mov word [edi], cx
movzx ecx, byte [esi + eax*4 + 2]
add ecx, ebx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x14], ecx
shl edx, cl
mov ecx, dword [esp + 8]
shr edx, cl
add ebp, dword [esp + 0x1c]
movzx eax, byte [esi + eax*4 + 3]
movzx ecx, word [esi + edx*4]
mov word [edi + eax], cx
lea ebx, [edi + eax]
movzx edi, byte [esi + edx*4 + 2]
movzx ecx, byte [esi + edx*4 + 3]
mov esi, dword [esp + 0x70]
cmp esi, 4
jl 0x57b9d3
mov eax, ebp
shr eax, 3
mov edx, esi
sub edx, eax
and ebp, 7
mov eax, dword [esp + 0x48]
mov dword [esp + 0x50], edx
mov eax, dword [eax + edx]
mov dword [esp + 0x54], eax
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 4]
add dword [esp], eax
mov eax, dword [esp + 0x94]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x8c]
add dword [esp + 0x30], eax
mov edx, dword [esp + 0x14]
add edx, edi
add ebx, ecx
mov dword [esp + 4], ebx
xor ecx, ecx
cmp esi, 4
setge bl
mov ebp, dword [esp + 0x80]
cmp ebp, 4
jl 0x57b9dc
mov eax, edx
shr eax, 3
mov esi, ebp
sub esi, eax
and edx, 7
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x58]
mov eax, dword [eax + esi]
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], esi
mov edi, dword [esp]
add edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x90]
add dword [esp + 0x30], eax
mov cl, bl
xor eax, eax
cmp ebp, 4
setge al
cmp dword [esp + 0x6c], 4
setge bl
cmp dword [esp + 0x20], 0xa
setge bh
mov ebp, dword [esp + 0x84]
and ebp, eax
and ebp, ecx
and bh, bl
movzx eax, bh
and ebp, eax
xor ecx, ecx
mov edx, dword [esp + 4]
cmp edx, dword [esp + 0x74]
setb cl
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, dword [esp + 0x28]
mov dword [esp + 0x20], esi
mov dword [esp + 0x84], ebp
test ebp, ecx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
jne 0x57b6c3
jmp 0x57ba4d
mov dword [esp + 0x10], edx
jmp 0x57b797
mov dword [esp + 0x18], esi
mov dword [esp + 0x5c], ebp
jmp 0x57b7e2
mov dword [esp + 0x50], esi
jmp 0x57b8b9
mov dword [esp + 0x14], edx
mov esi, ebp
jmp 0x57b91d
mov eax, ecx
jmp 0x57bb4e
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov edi, esi
mov edx, ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov eax, ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x34], ebp
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
jmp 0x57ba4d
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov eax, ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x34], ecx
mov edi, dword [esp]
mov ecx, ebp
mov dword [esp + 4], edx
mov dword [esp], edi
cmp edi, dword [esp + 0x4c]
ja 0x57bb49
mov edx, ecx
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x2c]
ja 0x57bb49
mov dword [esp + 0x50], eax
mov ecx, esi
mov esi, edx
mov eax, 0xffffffec
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x30], edx
ja 0x57bb4e
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x4c]
mov eax, ecx
sub eax, dword [esp]
cmp eax, 4
mov ebp, ebx
mov dword [esp + 0x5c], ebx
mov edx, esi
jb 0x57bb59
cmp esi, 0x21
jb 0x57bb73
lea eax, [ecx - 2]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 8]
cmp dword [esp], edi
ja 0x57bd36
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x44], esi
mov esi, dword [esp]
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x44]
mov ecx, edx
shl ebx, cl
mov ecx, edi
shr ebx, cl
mov ecx, esi
movzx esi, word [ebp + ebx*4]
mov word [ecx], si
movzx esi, byte [ebp + ebx*4 + 2]
add esi, edx
mov edx, esi
movzx esi, byte [ebp + ebx*4 + 3]
add esi, ecx
cmp esi, eax
jbe 0x57baf4
mov dword [esp], esi
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
mov edi, dword [esp]
cmp edi, ecx
jb 0x57bd41
jmp 0x57bd7d
mov eax, 0xffffffec
add esp, 0xa0
pop esi
pop edi
pop ebx
pop ebp
ret
cmp esi, 0x20
jbe 0x57bc70
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 4]
jmp 0x57bd03
lea eax, [ecx - 3]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 8], eax
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0xc]
cmp edi, 0xa
jge 0x57bbcd
cmp edi, 6
je 0x57bced
mov ebx, edx
shr ebx, 3
mov ebp, edi
sub ebp, ebx
lea ecx, [edi - 6]
mov eax, edx
xor edx, edx
cmp ebp, 6
mov ebp, dword [esp + 0x5c]
setl dl
cmovge ecx, ebx
lea ebx, [ecx*8]
sub eax, ebx
mov ebx, dword [esp + 4]
jmp 0x57bbd9
mov ecx, edx
shr ecx, 3
and edx, 7
mov eax, edx
xor edx, edx
sub edi, ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x28], edi
mov ecx, dword [ecx + edi]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x20]
cmp dword [esp], ecx
jae 0x57bca4
test edx, edx
jne 0x57bca4
mov ebp, dword [esp + 0x44]
mov ebx, ebp
mov ecx, eax
mov edi, eax
shl ebx, cl
mov ecx, dword [esp + 8]
shr ebx, cl
movzx ecx, word [esi + ebx*4]
mov eax, dword [esp]
mov word [eax], cx
movzx edx, byte [esi + ebx*4 + 2]
add edx, edi
mov ecx, edx
shl ebp, cl
movzx ebx, byte [esi + ebx*4 + 3]
mov ecx, dword [esp + 8]
shr ebp, cl
movzx ecx, word [esi + ebp*4]
mov word [eax + ebx], cx
lea ecx, [eax + ebx]
mov ebx, dword [esp + 4]
movzx eax, byte [esi + ebp*4 + 2]
add eax, edx
mov edx, eax
movzx eax, byte [esi + ebp*4 + 3]
mov ebp, dword [esp + 0x5c]
mov edi, dword [esp + 0x28]
add eax, ecx
mov dword [esp], eax
cmp edx, 0x20
mov ecx, dword [esp + 0x4c]
jbe 0x57bb93
jmp 0x57bcf2
mov edi, dword [esp + 0x28]
cmp edi, 0xa
mov ebx, dword [esp + 4]
jge 0x57bc94
cmp edi, 6
jne 0x57bcb0
mov dword [esp + 0x28], 6
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
jmp 0x57bd03
mov ecx, edx
shr ecx, 3
sub edi, ecx
mov ecx, dword [esp + 0x4c]
and edx, 7
jmp 0x57bcdd
mov edx, eax
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x28]
jmp 0x57bcf2
mov ecx, edx
shr ecx, 3
mov edx, edi
sub edx, ecx
mov dword [esp + 0x20], edx
lea edx, [edi - 6]
mov dword [esp + 8], edx
cmp dword [esp + 0x20], 6
mov edx, esi
mov esi, dword [esp + 8]
cmovge esi, ecx
mov ecx, dword [esp + 0x4c]
sub edi, esi
shl esi, 3
sub edx, esi
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x28], edi
mov esi, dword [esi + edi]
jmp 0x57bcff
mov edi, 6
mov dword [esp + 0x28], edi
mov eax, ecx
sub eax, dword [esp]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
cmp eax, 2
jb 0x57bd6e
lea eax, [ecx - 2]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 0x20], eax
cmp edx, 0x20
mov eax, dword [esp + 0x28]
jbe 0x57bf31
mov edi, dword [esp + 8]
cmp dword [esp], edi
jbe 0x57badd
mov dword [esp + 0x28], eax
mov edi, dword [esp]
cmp edi, ecx
jae 0x57bd7d
mov ecx, edx
shl esi, cl
mov eax, dword [esp + 0x38]
mov ecx, eax
neg cl
shr esi, cl
mov ecx, esi
mov esi, dword [esp + 0xc]
mov al, byte [esi + ecx*4]
mov byte [edi], al
cmp byte [esi + ecx*4 + 3], 1
jne 0x57be15
movzx eax, byte [esi + ecx*4 + 2]
add edx, eax
jmp 0x57bd81
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov edi, dword [esp]
cmp edi, ecx
jb 0x57bd41
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x60]
lea ecx, [eax + ebp]
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x34]
cmp eax, 4
mov dword [esp + 0x10], edx
jb 0x57bdc0
cmp dword [esp + 0x18], 0x21
jb 0x57be35
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffe
mov dword [esp], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
jmp 0x57c115
cmp dword [esp + 0x18], 0x20
ja 0x57c023
cmp ebp, 4
jge 0x57bfdf
mov dword [esp + 0x20], ecx
test ebp, ebp
je 0x57c49c
mov edi, dword [esp + 0x18]
mov ecx, edi
shr ecx, 3
mov edx, dword [esp + 0x20]
sub edx, ecx
cmp edx, dword [esp + 0x60]
cmovb ecx, ebp
sub ebp, ecx
shl ecx, 3
sub edi, ecx
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + ebp]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x10]
jmp 0x57c023
cmp edx, 0x1f
ja 0x57bd81
movzx eax, byte [esi + ecx*4 + 2]
add edx, eax
cmp edx, 0x20
mov eax, 0x20
cmovae edx, eax
jmp 0x57bd81
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffd
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp], eax
cmp ebp, 4
jge 0x57be88
test ebp, ebp
je 0x57c015
mov ebx, dword [esp + 0x60]
lea edi, [ebx + ebp]
mov eax, ebp
mov ebp, dword [esp + 0x18]
mov ecx, ebp
shr ecx, 3
sub edi, ecx
xor edx, edx
cmp edi, ebx
setb dl
cmovb ecx, eax
lea edi, [ecx*8]
sub ebp, edi
mov dword [esp + 0x18], ebp
mov ebp, eax
jmp 0x57be9e
mov edx, dword [esp + 0x18]
mov ecx, edx
shr ecx, 3
and edx, 7
mov dword [esp + 0x18], edx
xor edx, edx
mov ebx, dword [esp + 0x60]
sub ebp, ecx
mov esi, dword [ebx + ebp]
mov eax, dword [esp + 8]
cmp dword [esp + 0x34], eax
mov dword [esp + 0x64], esi
jae 0x57bffe
test edx, edx
jne 0x57bffe
mov edi, esi
mov ebx, dword [esp + 0x18]
mov ecx, ebx
shl edi, cl
mov ecx, dword [esp]
shr edi, cl
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0xc]
movzx ecx, word [ebp + edi*4]
mov eax, dword [esp + 0x34]
mov word [eax], cx
movzx edx, byte [ebp + edi*4 + 2]
add edx, ebx
mov ecx, edx
shl esi, cl
movzx edi, byte [ebp + edi*4 + 3]
mov ecx, dword [esp]
shr esi, cl
movzx ecx, word [ebp + esi*4]
mov word [eax + edi], cx
lea ecx, [eax + edi]
movzx edi, byte [ebp + esi*4 + 2]
add edi, edx
movzx eax, byte [ebp + esi*4 + 3]
mov ebp, dword [esp + 0x5c]
add eax, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], edi
cmp edi, 0x20
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
jbe 0x57be4c
jmp 0x57c017
mov dword [esp + 0x44], esi
cmp eax, 0xa
jge 0x57bf6d
cmp eax, 6
je 0x57c4b0
mov esi, edx
shr edx, 3
mov edi, eax
mov ebp, eax
sub ebp, edx
lea ecx, [eax - 6]
xor ebx, ebx
cmp ebp, 6
mov edi, dword [esp + 0x3c]
setl bl
cmovge ecx, edx
lea edx, [ecx*8]
sub esi, edx
mov edx, esi
jmp 0x57bf77
mov ecx, edx
shr ecx, 3
and edx, 7
xor ebx, ebx
sub eax, ecx
mov ecx, dword [esp + 0xb4]
mov esi, dword [ecx + eax]
mov ecx, dword [esp + 8]
cmp dword [esp], ecx
ja 0x57c008
test ebx, ebx
jne 0x57c008
mov dword [esp + 0x44], esi
mov ebx, esi
mov ecx, edx
shl ebx, cl
mov ecx, dword [esp + 0x20]
shr ebx, cl
mov esi, dword [esp + 0xc]
movzx ecx, word [esi + ebx*4]
mov ebp, eax
mov eax, edi
mov edi, dword [esp]
mov word [edi], cx
movzx ecx, byte [esi + ebx*4 + 2]
add ecx, edx
mov edx, ecx
movzx ecx, byte [esi + ebx*4 + 3]
add edi, ecx
mov dword [esp], edi
mov edi, eax
mov eax, ebp
cmp edx, 0x20
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
jbe 0x57bf35
jmp 0x57c4b5
mov edi, dword [esp + 0x18]
mov ecx, edi
shr ecx, 3
sub ebp, ecx
and edi, 7
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + ebp]
mov dword [esp + 0x64], ecx
jmp 0x57c023
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
jmp 0x57c017
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
jmp 0x57c4b9
xor ebp, ebp
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x60]
add ecx, ebp
cmp eax, 2
mov dword [esp + 0x20], ecx
jb 0x57c16c
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffe
mov dword [esp], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
cmp dword [esp + 0x18], 0x20
ja 0x57c115
mov dword [esp + 8], eax
cmp ebp, 4
mov esi, dword [esp + 0x60]
jge 0x57c08f
test ebp, ebp
je 0x57c111
mov edi, dword [esp + 0x18]
mov ecx, edi
shr ecx, 3
mov edx, dword [esp + 0x20]
sub edx, ecx
xor ebx, ebx
cmp edx, esi
setb bl
cmovb ecx, ebp
lea edx, [ecx*8]
sub edi, edx
mov edx, edi
jmp 0x57c09d
mov edx, dword [esp + 0x18]
mov ecx, edx
shr ecx, 3
and edx, 7
xor ebx, ebx
sub ebp, ecx
lea edi, [esi + ebp]
mov ecx, dword [esi + ebp]
mov dword [esp + 0x64], ecx
mov eax, dword [esp]
cmp dword [esp + 0x34], eax
mov dword [esp + 0x20], edi
ja 0x57c105
test ebx, ebx
jne 0x57c105
mov eax, ebp
mov edi, dword [esp + 0x64]
mov ecx, edx
shl edi, cl
mov ecx, dword [esp + 8]
shr edi, cl
mov esi, dword [esp + 0xc]
movzx ecx, word [esi + edi*4]
mov ebp, dword [esp + 0x34]
mov word [ebp], cx
movzx ebx, byte [esi + edi*4 + 2]
add ebx, edx
movzx ecx, byte [esi + edi*4 + 3]
add ebp, ecx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x18], ebx
cmp ebx, 0x20
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov ebp, eax
jbe 0x57c058
jmp 0x57c111
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 8]
mov ecx, dword [esp]
cmp dword [esp + 0x34], ecx
jbe 0x57c124
mov esi, dword [esp + 0xc]
jmp 0x57c16c
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x64]
mov ebx, dword [esp + 0x34]
mov edi, ebp
mov ecx, edx
shl edi, cl
mov ecx, eax
shr edi, cl
mov ecx, ebx
movzx ebx, word [esi + edi*4]
mov word [ecx], bx
movzx ebx, byte [esi + edi*4 + 2]
add ebx, edx
mov edx, ebx
movzx ebx, byte [esi + edi*4 + 3]
add ebx, ecx
cmp ebx, dword [esp]
jbe 0x57c134
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x34]
cmp edi, dword [esp + 0x2c]
jae 0x57c1a7
mov ebx, dword [esp + 0x18]
mov ecx, ebx
mov ebp, dword [esp + 0x64]
shl ebp, cl
mov eax, dword [esp + 0x38]
mov ecx, eax
neg cl
shr ebp, cl
mov al, byte [esi + ebp*4]
mov byte [edi], al
cmp byte [esi + ebp*4 + 3], 1
jne 0x57c1ad
movzx eax, byte [esi + ebp*4 + 2]
add ebx, eax
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x3c]
jmp 0x57c1d0
cmp ebx, 0x1f
mov edi, dword [esp + 0x3c]
ja 0x57c1cc
movzx eax, byte [esi + ebp*4 + 2]
add ebx, eax
cmp ebx, 0x20
mov eax, 0x20
cmovae ebx, eax
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
add eax, ecx
mov dword [esp + 8], eax
mov eax, edi
sub eax, dword [esp + 0x30]
cmp eax, 4
jb 0x57c209
cmp dword [esp + 0x1c], 0x21
jb 0x57c266
mov dword [esp + 0xc], esi
lea ecx, [edi - 2]
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov edi, dword [esp + 0x30]
jmp 0x57c4ee
cmp dword [esp + 0x1c], 0x20
ja 0x57c3a6
mov ebp, dword [esp + 0x50]
cmp ebp, 4
jge 0x57c363
test ebp, ebp
je 0x57c4a3
mov edi, dword [esp + 0x1c]
mov ecx, edi
shr ecx, 3
mov edx, dword [esp + 8]
sub edx, ecx
cmp edx, dword [esp + 0x48]
cmovb ecx, ebp
sub ebp, ecx
shl ecx, 3
sub edi, ecx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x50], ebp
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + ebp]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x10]
jmp 0x57c3a6
lea eax, [edi - 3]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp], eax
mov eax, dword [esp + 0x50]
cmp eax, 4
jge 0x57c2b9
test eax, eax
je 0x57c394
mov ebx, dword [esp + 0x48]
lea edi, [ebx + eax]
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
shr ecx, 3
sub edi, ecx
xor edx, edx
cmp edi, ebx
setb dl
cmovb ecx, eax
lea edi, [ecx*8]
sub ebp, edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x1c], ebp
jmp 0x57c2cf
mov edx, dword [esp + 0x1c]
mov ecx, edx
shr ecx, 3
and edx, 7
mov dword [esp + 0x1c], edx
xor edx, edx
mov ebx, dword [esp + 0x48]
sub eax, ecx
mov ecx, dword [ebx + eax]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 8]
cmp dword [esp + 0x30], ecx
mov dword [esp + 0x50], eax
jae 0x57c38a
test edx, edx
jne 0x57c38a
mov esi, dword [esp + 0x54]
mov edi, esi
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
shl edi, cl
mov ecx, dword [esp]
shr edi, cl
mov ebp, dword [esp + 0xc]
movzx ecx, word [ebp + edi*4]
mov eax, dword [esp + 0x30]
mov word [eax], cx
movzx edx, byte [ebp + edi*4 + 2]
add edx, ebx
mov ecx, edx
shl esi, cl
movzx edi, byte [ebp + edi*4 + 3]
mov ecx, dword [esp]
shr esi, cl
movzx ecx, word [ebp + esi*4]
mov word [eax + edi], cx
lea ecx, [eax + edi]
movzx edi, byte [ebp + esi*4 + 2]
add edi, edx
movzx eax, byte [ebp + esi*4 + 3]
add eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edi
cmp edi, 0x20
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
jbe 0x57c279
jmp 0x57c39c
mov edi, dword [esp + 0x1c]
mov ecx, edi
shr ecx, 3
sub ebp, ecx
and edi, 7
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x50], ebp
mov ecx, dword [ecx + ebp]
mov dword [esp + 0x54], ecx
jmp 0x57c3a6
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
jmp 0x57c39c
mov dword [esp + 0x50], 0
mov eax, edi
sub eax, dword [esp + 0x30]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
add ecx, ebp
mov dword [esp + 8], ecx
cmp eax, 2
jb 0x57c551
lea ecx, [edi - 2]
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
cmp dword [esp + 0x1c], 0x20
jbe 0x57c3dd
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x30]
jmp 0x57c4ee
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x30]
mov eax, ecx
mov dword [esp], ecx
mov eax, dword [esp + 0x50]
cmp eax, 4
jge 0x57c425
test eax, eax
je 0x57c4cf
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
shr ecx, 3
mov edx, dword [esp + 8]
sub edx, ecx
xor ebx, ebx
mov esi, dword [esp + 0x48]
cmp edx, esi
setb bl
cmovb ecx, eax
lea edx, [ecx*8]
sub ebp, edx
mov edx, ebp
jmp 0x57c437
mov edx, dword [esp + 0x1c]
mov ecx, edx
shr ecx, 3
and edx, 7
xor ebx, ebx
mov esi, dword [esp + 0x48]
sub eax, ecx
lea ecx, [esi + eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x50], eax
mov ecx, dword [esi + eax]
mov dword [esp + 0x54], ecx
mov eax, dword [esp]
cmp edi, eax
ja 0x57c4dc
test ebx, ebx
mov esi, dword [esp + 0xc]
jne 0x57c4d8
mov ebx, dword [esp + 0x54]
mov ecx, edx
shl ebx, cl
mov ecx, dword [esp + 0x2c]
shr ebx, cl
movzx ecx, word [esi + ebx*4]
mov word [edi], cx
movzx ebp, byte [esi + ebx*4 + 2]
add ebp, edx
movzx ecx, byte [esi + ebx*4 + 3]
add edi, ecx
mov dword [esp + 0x1c], ebp
cmp ebp, 0x20
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
jbe 0x57c3ea
mov dword [esp + 0xc], esi
jmp 0x57c4e8
xor ebp, ebp
jmp 0x57c023
mov dword [esp + 0x50], 0
jmp 0x57c3a6
mov eax, 6
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x5c]
mov edi, dword [esp + 8]
cmp dword [esp], edi
ja 0x57bd36
jmp 0x57badd
mov dword [esp + 0xc], esi
mov ecx, dword [esp]
jmp 0x57c4ea
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], edi
cmp edi, ecx
jbe 0x57c500
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0xc]
jmp 0x57c551
mov esi, ecx
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x30]
mov dword [esp], ecx
mov esi, dword [esp + 0xc]
mov ebx, edi
mov ecx, edx
shl ebx, cl
mov ecx, eax
shr ebx, cl
mov ecx, ebp
movzx ebp, word [esi + ebx*4]
mov word [ecx], bp
movzx ebp, byte [esi + ebx*4 + 2]
add ebp, edx
mov edx, ebp
movzx ebp, byte [esi + ebx*4 + 3]
add ebp, ecx
cmp ebp, dword [esp]
jbe 0x57c515
mov dword [esp + 0x30], ebp
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x30]
cmp eax, edi
jae 0x57c587
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
mov ebp, eax
mov edi, dword [esp + 0x54]
shl edi, cl
mov eax, dword [esp + 0x38]
mov ecx, eax
neg cl
shr edi, cl
mov al, byte [esi + edi*4]
mov byte [ebp], al
cmp byte [esi + edi*4 + 3], 1
jne 0x57c58d
movzx eax, byte [esi + edi*4 + 2]
add ebx, eax
jmp 0x57c5a4
mov eax, dword [esp + 0x68]
jmp 0x57c5b0
cmp ebx, 0x1f
ja 0x57c5a8
movzx eax, byte [esi + edi*4 + 2]
add ebx, eax
cmp ebx, 0x20
mov eax, 0x20
cmovae ebx, eax
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x58]
lea ebp, [edi + ecx]
sub eax, ebx
cmp eax, 4
jb 0x57c5e8
cmp dword [esp + 0x14], 0x21
jb 0x57c5fc
mov eax, dword [esp + 0x68]
lea ecx, [eax - 2]
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 0x2c], eax
mov eax, ecx
mov ecx, dword [esp + 0x40]
jmp 0x57c87c
cmp dword [esp + 0x14], 0x20
jbe 0x57c6d8
mov ebp, dword [esp + 0x58]
jmp 0x57c751
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp], eax
mov ebp, dword [esp + 0x58]
mov esi, ebx
mov ebx, dword [esp + 0x24]
cmp ebx, 4
jge 0x57c646
test ebx, ebx
je 0x57c741
lea edi, [ebx + ebp]
mov eax, dword [esp + 0x14]
mov ecx, eax
shr ecx, 3
sub edi, ecx
xor edx, edx
cmp edi, ebp
setb dl
cmovb ecx, ebx
lea edi, [ecx*8]
sub eax, edi
mov dword [esp + 0x14], eax
jmp 0x57c658
mov eax, dword [esp + 0x14]
mov ecx, eax
shr ecx, 3
and eax, 7
mov dword [esp + 0x14], eax
xor edx, edx
sub ebx, ecx
mov dword [esp + 0x24], ebx
mov ebx, dword [ebp + ebx]
cmp esi, dword [esp + 0x74]
mov dword [esp + 0x40], ebx
jae 0x57c73b
test edx, edx
jne 0x57c73b
mov edi, ebx
mov eax, dword [esp + 0x14]
mov ecx, eax
shl edi, cl
mov ecx, dword [esp]
shr edi, cl
mov ebp, dword [esp + 0xc]
movzx ecx, word [ebp + edi*4]
mov word [esi], cx
movzx edx, byte [ebp + edi*4 + 2]
add edx, eax
mov ecx, edx
shl ebx, cl
movzx edi, byte [ebp + edi*4 + 3]
mov ecx, dword [esp]
shr ebx, cl
movzx ecx, word [ebp + ebx*4]
mov word [esi + edi], cx
movzx eax, byte [ebp + ebx*4 + 2]
add eax, edx
movzx ebx, byte [ebp + ebx*4 + 3]
mov ebp, dword [esp + 0x58]
add ebx, esi
add ebx, edi
mov dword [esp + 0x14], eax
cmp eax, 0x20
mov edx, dword [esp + 0x10]
jbe 0x57c60c
jmp 0x57c74b
mov edi, dword [esp + 0x24]
cmp edi, 4
jge 0x57c717
test edi, edi
je 0x57c84a
mov ebx, dword [esp + 0x14]
mov ecx, ebx
shr ecx, 3
sub ebp, ecx
mov esi, dword [esp + 0x58]
cmp ebp, esi
mov ebp, esi
cmovb ecx, edi
sub edi, ecx
shl ecx, 3
sub ebx, ecx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 4]
mov dword [esp + 0x24], edi
mov ecx, dword [esi + edi]
jmp 0x57c735
mov esi, dword [esp + 0x14]
mov ecx, esi
shr ecx, 3
sub edi, ecx
and esi, 7
mov dword [esp + 0x14], esi
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x24], edi
mov ecx, dword [ebp + edi]
mov dword [esp + 0x40], ecx
jmp 0x57c751
mov edx, dword [esp + 0x10]
jmp 0x57c749
mov dword [esp + 0x24], 0
mov ebx, esi
mov eax, dword [esp + 0x68]
sub eax, ebx
mov esi, ebp
mov ecx, dword [esp + 0x24]
add ebp, ecx
cmp eax, 2
jb 0x57c788
mov eax, dword [esp + 0x68]
lea edi, [eax - 2]
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x14], 0x20
mov esi, dword [esp + 0xc]
jbe 0x57c799
mov ecx, dword [esp + 0x40]
mov eax, edi
jmp 0x57c87c
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x40]
jmp 0x57c8db
mov dword [esp], edi
mov eax, edi
mov edi, dword [esp + 0x24]
cmp edi, 4
jge 0x57c7dc
mov esi, dword [esp + 0x58]
lea ebp, [esi + edi]
test edi, edi
je 0x57c85b
mov eax, ebx
mov edx, ebp
mov ebp, dword [esp + 0x14]
mov ecx, ebp
shr ecx, 3
sub edx, ecx
xor ebx, ebx
cmp edx, esi
setb bl
cmovb ecx, edi
lea edx, [ecx*8]
sub ebp, edx
mov edx, ebp
jmp 0x57c7f0
mov eax, ebx
mov edx, dword [esp + 0x14]
mov ecx, edx
shr ecx, 3
and edx, 7
xor ebx, ebx
mov esi, dword [esp + 0x58]
sub edi, ecx
lea ebp, [esi + edi]
mov dword [esp + 0x24], edi
mov ecx, dword [esi + edi]
cmp eax, dword [esp]
ja 0x57c865
test ebx, ebx
mov esi, dword [esp + 0xc]
jne 0x57c86f
mov dword [esp + 0x40], ecx
mov ebx, ecx
mov ecx, edx
shl ebx, cl
mov ecx, dword [esp + 0x2c]
shr ebx, cl
movzx ecx, word [esi + ebx*4]
mov word [eax], cx
movzx edi, byte [esi + ebx*4 + 2]
add edi, edx
movzx ecx, byte [esi + ebx*4 + 3]
mov ebx, eax
add ebx, ecx
mov dword [esp + 0x14], edi
cmp edi, 0x20
mov edx, dword [esp + 0x10]
mov eax, dword [esp]
jbe 0x57c79e
mov ecx, dword [esp + 0x40]
jmp 0x57c87c
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x58]
jmp 0x57c751
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
jmp 0x57c87c
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0xc]
jmp 0x57c873
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
mov ebx, eax
mov eax, dword [esp]
cmp ebx, eax
jbe 0x57c886
mov eax, dword [esp + 0x68]
jmp 0x57c8db
mov dword [esp + 0x24], ebp
mov edx, dword [esp + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov esi, ebx
mov ebx, ecx
mov edi, ecx
mov ecx, edx
shl ebx, cl
mov ecx, eax
shr ebx, cl
mov ecx, esi
mov esi, dword [esp + 0xc]
movzx esi, word [esi + ebx*4]
mov word [ecx], si
mov esi, dword [esp + 0xc]
movzx ebp, byte [esi + ebx*4 + 2]
add ebp, edx
mov edx, ebp
movzx ebx, byte [esi + ebx*4 + 3]
add ebx, ecx
mov ecx, edi
cmp ebx, dword [esp]
jbe 0x57c895
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
cmp ebx, eax
jae 0x57c90a
mov eax, ecx
mov edi, ebx
mov ebx, dword [esp + 0x14]
mov ecx, ebx
shl eax, cl
mov ecx, dword [esp + 0x38]
neg cl
shr eax, cl
mov ecx, eax
mov al, byte [esi + eax*4]
mov byte [edi], al
cmp byte [esi + ecx*4 + 3], 1
jne 0x57c95d
movzx eax, byte [esi + ecx*4 + 2]
add ebx, eax
jmp 0x57c90e
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
xor eax, 6
xor edx, 0x20
or edx, eax
xor edi, dword [esp + 0x60]
mov eax, dword [esp + 0x18]
xor eax, 0x20
or eax, edi
mov esi, dword [esp + 8]
xor esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
xor ecx, 0x20
or ecx, esi
xor ebp, dword [esp + 0x58]
xor ebx, 0x20
or ebx, ebp
or ebx, ecx
or ebx, eax
or ebx, edx
mov eax, 0xffffffec
cmove eax, dword [esp + 0x88]
jmp 0x57bb4e
cmp ebx, 0x1f
mov edi, dword [esp + 0x20]
ja 0x57c912
movzx eax, byte [esi + ecx*4 + 2]
add ebx, eax
cmp ebx, 0x20
mov eax, 0x20
cmovae ebx, eax
jmp 0x57c912