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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov eax, edx
mov dword [esp + 0xa8], eax
mov ebx, ecx
mov dword [esp + 0x24], ebx
push edi
cmp esi, 0xa
jae 0x5a7c02
mov eax, 0xffffffec
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
add eax, ebx
mov ecx, dword [ebp + 8]
mov edi, esi
mov dword [esp + 0xa8], eax
lea eax, [edx + 4]
mov dword [esp + 0x14], eax
movzx eax, word [ecx]
mov dword [esp + 0x10], eax
movzx eax, word [ecx + 2]
mov dword [esp + 0x40], eax
movzx eax, word [ecx + 4]
add ecx, 6
sub edi, eax
mov dword [esp + 0x18], eax
sub edi, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
sub edi, eax
add eax, ecx
sub edi, 6
mov dword [esp + 0x30], eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xac]
add eax, 3
shr eax, 2
add ebx, eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x1c], ebx
lea esi, [ebx + eax]
movzx ebx, byte [edx + 2]
add eax, esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], esi
mov esi, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], ebx
cmp edi, dword [ebp + 0xc]
ja 0x5a7bf6
mov eax, dword [esp + 0x10]
mov edx, ecx
push eax
lea ecx, [esp + 0x58]
call fcn.005a5c70
add esp, 4
cmp eax, 0xffffff88
ja 0x5a8cb4
push dword [esp + 0x40]
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x84]
call fcn.005a5c70
add esp, 4
cmp eax, 0xffffff88
ja 0x5a8cb4
push dword [esp + 0x18]
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x70]
call fcn.005a5c70
add esp, 4
cmp eax, 0xffffff88
ja 0x5a8cb4
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x94]
mov edx, dword [esp + 0x44]
push edi
lea edx, [edx + eax]
call fcn.005a5c70
add esp, 4
cmp eax, 0xffffff88
ja 0x5a8cb4
mov eax, dword [esp + 0xa8]
add eax, 0xfffffffd
cmp esi, eax
sbb eax, eax
neg eax
test al, 1
je 0x5a808d
mov eax, dword [esp + 0x84]
neg ebx
mov ecx, dword [esp + 0x58]
and ebx, 0x1f
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x18]
shr edx, cl
mov ecx, dword [esp + 0x28]
movzx eax, word [eax + edx*4]
mov word [ecx], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
and ecx, 0x1f
movzx eax, byte [eax + edx*4 + 2]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edx*4 + 3]
add dword [esp + 0x28], eax
mov edx, dword [esp + 0x44]
shl edx, cl
mov ecx, dword [esp + 0x18]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*4]
mov ecx, dword [esp + 0x1c]
mov word [ecx], ax
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*4 + 2]
add dword [esp + 0x20], eax
movzx eax, byte [ecx + edx*4 + 3]
mov ecx, edi
add dword [esp + 0x1c], eax
and ecx, 0x1f
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
shl edx, cl
mov ecx, dword [esp + 0x18]
shr edx, cl
mov ecx, dword [esp + 0x24]
movzx eax, word [eax + edx*4]
mov word [ecx], ax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edx*4 + 2]
add edi, eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edx*4 + 3]
mov edx, dword [esp + 0x40]
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x18]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*4]
mov word [esi], ax
movzx eax, byte [ecx + edx*4 + 2]
add ebx, eax
movzx eax, byte [ecx + edx*4 + 3]
mov ecx, dword [esp + 0x2c]
add esi, eax
mov eax, dword [esp + 0x34]
and ecx, 0x1f
mov edx, dword [esp + 0x28]
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
mov edx, dword [esp + 0x2c]
add edx, eax
movzx eax, byte [ecx + 3]
add dword [esp + 0x28], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
and ecx, 0x1f
mov dword [esp + 0x2c], edx
mov dword [esp + 0x58], edx
shl eax, cl
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
mov edx, dword [esp + 0x20]
add edx, eax
movzx eax, byte [ecx + 3]
add dword [esp + 0x1c], eax
mov ecx, edi
mov eax, dword [esp + 0x48]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, cl
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x24]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add edi, eax
movzx eax, byte [ecx + 3]
add dword [esp + 0x24], eax
mov ecx, ebx
mov eax, dword [esp + 0x40]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x18]
shr eax, cl
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x70], edi
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
add ebx, eax
movzx eax, byte [ecx + 3]
add esi, eax
mov dword [esp + 0x98], ebx
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x5c], eax
jae 0x5a7f3a
mov dword [esp + 0x30], 3
jmp 0x5a7f6c
mov ecx, dword [esp + 0x2c]
mov eax, ecx
shr eax, 3
sub dword [esp + 0x5c], eax
and ecx, 7
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x58], ecx
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x90]
jae 0x5a7f8a
mov dword [esp + 0x4c], 3
jmp 0x5a7fbb
mov eax, edx
mov dword [esp + 0x4c], 0
shr eax, 3
sub ecx, eax
and edx, 7
mov dword [esp + 0x88], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x84], edx
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x74]
cmp ecx, dword [esp + 0x7c]
jae 0x5a7fcf
mov dword [esp + 0x10], 3
jmp 0x5a7ff3
mov eax, edi
mov dword [esp + 0x10], 0
shr eax, 3
sub ecx, eax
and edi, 7
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], edi
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x9c]
cmp ecx, dword [esp + 0xa4]
jae 0x5a800a
mov edx, 3
jmp 0x5a8031
mov eax, ebx
and ebx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ecx
xor edx, edx
mov eax, dword [ecx]
mov dword [esp + 0x40], eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa8]
add eax, 0xfffffffd
cmp esi, eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edx, edx
mov edx, dword [esp + 0x34]
sete al
and ecx, eax
xor eax, eax
cmp dword [esp + 0x10], eax
sete al
and ecx, eax
xor eax, eax
cmp dword [esp + 0x4c], eax
sete al
and ecx, eax
xor eax, eax
cmp dword [esp + 0x30], eax
sete al
test eax, ecx
mov ecx, dword [esp + 0x2c]
jne 0x5a7d72
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], edi
mov edi, ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], esi
jmp 0x5a80d5
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], ebx
cmp ecx, dword [esp + 0x50]
ja 0x5a7bf6
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x1c], edx
ja 0x5a7bf6
mov edx, dword [esp + 0x68]
cmp dword [esp + 0x24], edx
ja 0x5a7bf6
mov esi, dword [esp + 0x5c]
cmp edi, 0x20
jbe 0x5a811a
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], 3
jmp 0x5a818e
cmp esi, dword [esp + 0x64]
jb 0x5a8134
mov eax, edi
mov dword [esp + 0x10], 0
shr eax, 3
sub esi, eax
and edi, 7
jmp 0x5a8178
cmp esi, dword [esp + 0x60]
jne 0x5a814c
mov edx, dword [esp + 0x34]
cmp edi, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x5a818e
mov edx, edi
mov dword [esp + 0x10], 0
shr edx, 3
mov eax, esi
sub eax, edx
cmp eax, dword [esp + 0x60]
jae 0x5a8171
mov edx, esi
mov dword [esp + 0x10], 1
sub edx, dword [esp + 0x60]
imul eax, edx, 0xfffffff8
sub esi, edx
add edi, eax
mov edx, dword [esi]
mov dword [esp + 0x54], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x5c], esi
mov eax, dword [esp + 0x50]
add eax, 0xfffffffd
cmp ecx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x5a8230
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x38]
and ecx, 0x1f
mov eax, dword [esp + 0x14]
neg edi
shl edx, cl
and edi, 0x1f
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x28]
movzx eax, word [eax + edx*4]
mov word [ecx], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
movzx eax, byte [eax + edx*4 + 2]
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
and ecx, 0x1f
movzx eax, byte [eax + edx*4 + 3]
mov edx, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0x34]
shl eax, cl
mov ecx, edi
mov edi, dword [esp + 0x2c]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add edi, eax
movzx eax, byte [ecx + 3]
add edx, eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x58], edi
mov ecx, edx
mov dword [esp + 0x28], edx
jmp 0x5a8107
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x28]
cmp edi, 0x20
jbe 0x5a824b
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], 3
jmp 0x5a82bb
cmp ebx, dword [esp + 0x64]
jb 0x5a8265
mov eax, edi
mov dword [esp + 0x10], 0
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x5a82a9
cmp ebx, dword [esp + 0x60]
jne 0x5a827d
mov edx, dword [esp + 0x34]
cmp edi, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x5a82bb
mov edx, edi
mov dword [esp + 0x10], 0
shr edx, 3
mov eax, ebx
sub eax, edx
cmp eax, dword [esp + 0x60]
jae 0x5a82a2
mov edx, ebx
mov dword [esp + 0x10], 1
sub edx, dword [esp + 0x60]
imul eax, edx, 0xfffffff8
sub ebx, edx
add edi, eax
mov edx, dword [ebx]
mov dword [esp + 0x54], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x50]
add eax, 0xfffffffe
cmp eax, ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x5a8318
mov eax, dword [esp + 0x14]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x28]
mov ax, word [eax + edx*4]
mov word [ecx], ax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edx*4 + 2]
add edi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], edi
movzx eax, byte [eax + edx*4 + 3]
add ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x5a8238
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x28]
add ecx, 0xfffffffe
cmp eax, ecx
ja 0x5a837b
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
neg eax
mov ebx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x10], eax
lea esp, [esp]
mov ecx, edi
mov eax, edx
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
add edi, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x50]
add esi, eax
lea eax, [ecx - 2]
cmp esi, eax
jbe 0x5a8340
mov dword [esp + 0x58], edi
mov eax, esi
mov dword [esp + 0x28], esi
jmp 0x5a837f
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x50], 0x20
cmp eax, ecx
jae 0x5a83d1
mov eax, dword [esp + 0x14]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x28]
lea edx, [eax + edx*4]
mov al, byte [edx]
mov byte [ecx], al
cmp byte [edx + 3], 1
jne 0x5a83ba
movzx eax, byte [edx + 2]
add edi, eax
jmp 0x5a83cd
cmp edi, 0x20
jae 0x5a83d1
movzx eax, byte [edx + 2]
add edi, eax
cmp edi, 0x20
cmova edi, dword [esp + 0x50]
mov dword [esp + 0x58], edi
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
add ecx, 0xfffffffd
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x8c]
cmp edx, 0x20
jbe 0x5a8404
mov edi, dword [esp + 0x44]
mov dword [esp + 0x10], 3
jmp 0x5a8482
cmp ebx, dword [esp + 0x90]
jb 0x5a8421
mov eax, edx
mov dword [esp + 0x10], 0
shr eax, 3
sub ebx, eax
and edx, 7
jmp 0x5a8463
cmp ebx, edi
jne 0x5a8437
mov edi, dword [esp + 0x44]
cmp edx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x5a8482
mov ecx, edx
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, ebx
sub eax, ecx
cmp eax, edi
jae 0x5a8458
mov ecx, ebx
mov dword [esp + 0x10], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub ebx, ecx
mov ecx, dword [esp + 0x34]
add edx, eax
mov edi, dword [ebx]
mov dword [esp + 0x80], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x88], ebx
cmp dword [esp + 0x1c], ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x5a851c
mov edi, dword [esp + 0x38]
mov ecx, edx
mov edx, dword [esp + 0x44]
and ecx, 0x1f
mov esi, dword [esp + 0x1c]
neg edi
shl edx, cl
and edi, 0x1f
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*4]
mov word [esi], ax
movzx eax, byte [ecx + edx*4 + 2]
add dword [esp + 0x20], eax
movzx eax, byte [ecx + edx*4 + 3]
add dword [esp + 0x1c], eax
mov edx, dword [esp + 0x20]
mov ecx, edx
mov eax, dword [esp + 0x44]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
mov edi, dword [esp + 0x1c]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edi], ax
movzx eax, byte [ecx + 2]
add edx, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x34]
add edi, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x1c], edi
jmp 0x5a83e7
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x1c]
cmp edx, 0x20
jbe 0x5a8539
mov dword [esp + 0x10], 3
jmp 0x5a85ba
cmp esi, dword [esp + 0x90]
jb 0x5a8556
mov eax, edx
mov dword [esp + 0x10], 0
shr eax, 3
sub esi, eax
and edx, 7
jmp 0x5a859f
cmp esi, dword [esp + 0x8c]
jne 0x5a856d
cmp edx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x5a85ba
mov edi, edx
mov dword [esp + 0x10], 0
shr edi, 3
mov eax, esi
sub eax, edi
cmp eax, dword [esp + 0x8c]
jae 0x5a8598
mov edi, esi
mov dword [esp + 0x10], 1
sub edi, dword [esp + 0x8c]
imul eax, edi, 0xfffffff8
sub esi, edi
add edx, eax
mov edi, dword [esi]
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x88], esi
mov eax, dword [esp + 0x3c]
add eax, 0xfffffffe
cmp eax, ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x5a8626
mov ebx, dword [esp + 0x1c]
mov ecx, edx
and ecx, 0x1f
mov edx, edi
shl edx, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x14]
mov ax, word [ecx + edx*4]
mov word [ebx], ax
movzx eax, byte [ecx + edx*4 + 2]
mov ecx, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x84], ecx
mov ecx, ebx
movzx eax, byte [eax + edx*4 + 3]
mov edx, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x5a8527
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
add ecx, 0xfffffffe
cmp eax, ecx
ja 0x5a868e
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
neg eax
mov esi, dword [esp + 0x1c]
and eax, 0x1f
mov dword [esp + 0x10], eax
lea ebx, [ebx]
mov ecx, edx
mov eax, edi
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
add edx, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x3c]
add esi, eax
lea eax, [ecx - 2]
cmp esi, eax
jbe 0x5a8650
mov dword [esp + 0x84], edx
mov eax, esi
mov dword [esp + 0x1c], esi
jmp 0x5a8692
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jae 0x5a86df
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edi, cl
mov ecx, dword [esp + 0x1c]
lea edi, [eax + edi*4]
mov al, byte [edi]
mov byte [ecx], al
cmp byte [edi + 3], 1
jne 0x5a86c5
movzx eax, byte [edi + 2]
add edx, eax
jmp 0x5a86d8
cmp edx, 0x20
jae 0x5a86df
movzx eax, byte [edi + 2]
add edx, eax
cmp edx, 0x20
cmova edx, dword [esp + 0x50]
mov dword [esp + 0x84], edx
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
nop
cmp edi, 0x20
jbe 0x5a86ff
mov dword [esp + 0x10], 3
jmp 0x5a876f
cmp esi, dword [esp + 0x7c]
jb 0x5a8719
mov eax, edi
mov dword [esp + 0x10], 0
shr eax, 3
sub esi, eax
and edi, 7
jmp 0x5a8759
cmp esi, dword [esp + 0x78]
jne 0x5a872d
cmp edi, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x5a876f
mov edx, edi
mov dword [esp + 0x10], 0
shr edx, 3
mov eax, esi
sub eax, edx
cmp eax, dword [esp + 0x78]
jae 0x5a8752
mov edx, esi
mov dword [esp + 0x10], 1
sub edx, dword [esp + 0x78]
imul eax, edx, 0xfffffff8
sub esi, edx
add edi, eax
mov edx, dword [esi]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x70], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x74], esi
mov eax, dword [esp + 0x68]
add eax, 0xfffffffd
cmp ecx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x5a8817
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
and ecx, 0x1f
mov eax, dword [esp + 0x14]
neg edi
shl edx, cl
and edi, 0x1f
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x24]
movzx eax, word [eax + edx*4]
mov word [ecx], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
movzx eax, byte [eax + edx*4 + 2]
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
and ecx, 0x1f
movzx eax, byte [eax + edx*4 + 3]
add dword [esp + 0x24], eax
mov edx, dword [esp + 0x48]
mov eax, edx
shl eax, cl
mov ecx, edi
mov edi, dword [esp + 0x24]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edi], ax
movzx eax, byte [ecx + 2]
mov edi, dword [esp + 0x18]
add edi, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x24], ecx
jmp 0x5a86f0
mov ebx, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
nop
cmp edi, 0x20
jbe 0x5a8833
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], 3
jmp 0x5a88a3
cmp ebx, dword [esp + 0x7c]
jb 0x5a884d
mov eax, edi
mov dword [esp + 0x10], 0
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x5a8891
cmp ebx, dword [esp + 0x78]
jne 0x5a8865
mov edx, dword [esp + 0x48]
cmp edi, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x5a88a3
mov edx, edi
mov dword [esp + 0x10], 0
shr edx, 3
mov eax, ebx
sub eax, edx
cmp eax, dword [esp + 0x78]
jae 0x5a888a
mov edx, ebx
mov dword [esp + 0x10], 1
sub edx, dword [esp + 0x78]
imul eax, edx, 0xfffffff8
sub ebx, edx
add edi, eax
mov edx, dword [ebx]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x4c]
add eax, 0xfffffffe
cmp eax, ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x5a8904
mov eax, dword [esp + 0x14]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x24]
mov ax, word [eax + edx*4]
mov word [ecx], ax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edx*4 + 2]
add edi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], edi
movzx eax, byte [eax + edx*4 + 3]
add ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x5a8820
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
add ecx, 0xfffffffe
mov ebx, dword [esp + 0x30]
cmp eax, ecx
ja 0x5a8975
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
neg eax
mov ebx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x10], eax
lea esp, [esp]
mov ecx, edi
mov eax, edx
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
add edi, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x68]
add esi, eax
lea eax, [ecx - 2]
cmp esi, eax
jbe 0x5a8930
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x70], edi
jmp 0x5a8979
mov ecx, dword [esp + 0x68]
cmp eax, ecx
jae 0x5a89c3
mov eax, dword [esp + 0x14]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x24]
lea edx, [eax + edx*4]
mov al, byte [edx]
mov byte [ecx], al
cmp byte [edx + 3], 1
jne 0x5a89ac
movzx eax, byte [edx + 2]
add edi, eax
jmp 0x5a89bf
cmp edi, 0x20
jae 0x5a89c3
movzx eax, byte [edx + 2]
add edi, eax
cmp edi, 0x20
cmova edi, dword [esp + 0x50]
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0xa8]
add ecx, 0xfffffffd
mov dword [esp + 0x3c], ecx
mov edi, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
cmp ebx, 0x20
jbe 0x5a89f2
mov edi, dword [esp + 0x40]
mov dword [esp + 0x10], 3
jmp 0x5a8a6c
cmp edx, dword [esp + 0xa4]
jb 0x5a8a0f
mov eax, ebx
mov dword [esp + 0x10], 0
shr eax, 3
sub edx, eax
and ebx, 7
jmp 0x5a8a51
cmp edx, edi
jne 0x5a8a25
mov edi, dword [esp + 0x40]
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x5a8a6c
mov ecx, ebx
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, edx
sub eax, ecx
cmp eax, edi
jae 0x5a8a46
mov ecx, edx
mov dword [esp + 0x10], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub edx, ecx
mov ecx, dword [esp + 0x3c]
add ebx, eax
mov edi, dword [edx]
mov dword [esp + 0x94], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], edx
cmp esi, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x5a8ae8
mov edi, dword [esp + 0x38]
mov ecx, ebx
mov edx, dword [esp + 0x40]
and ecx, 0x1f
shl edx, cl
neg edi
and edi, 0x1f
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*4]
mov word [esi], ax
movzx eax, byte [ecx + edx*4 + 2]
add ebx, eax
movzx eax, byte [ecx + edx*4 + 3]
add esi, eax
mov ecx, ebx
mov eax, dword [esp + 0x40]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
add ebx, eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esp + 0x3c]
add esi, eax
mov dword [esp + 0x98], ebx
jmp 0x5a89d1
mov ecx, dword [esp + 0xa8]
add ecx, 0xfffffffe
mov dword [esp + 0x3c], ecx
cmp ebx, 0x20
jbe 0x5a8b05
mov edx, 3
jmp 0x5a8b8c
cmp edx, dword [esp + 0xa4]
jb 0x5a8b25
mov eax, ebx
and ebx, 7
shr eax, 3
sub edx, eax
mov dword [esp + 0x9c], edx
mov edi, dword [edx]
xor edx, edx
jmp 0x5a8b7e
cmp edx, dword [esp + 0xa0]
jne 0x5a8b3e
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
mov edx, eax
jmp 0x5a8b8c
mov edi, dword [esp + 0xa0]
mov ecx, ebx
shr ecx, 3
mov eax, edx
sub eax, ecx
mov dword [esp + 0x10], 0
cmp eax, edi
jae 0x5a8b66
mov ecx, edx
mov dword [esp + 0x10], 1
sub ecx, edi
sub edx, ecx
imul eax, ecx, 0xfffffff8
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x9c], edx
mov edi, dword [edx]
mov edx, dword [esp + 0x10]
add ebx, eax
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], ebx
cmp ecx, esi
sbb ecx, ecx
xor eax, eax
inc ecx
test edx, edx
sete al
test eax, ecx
je 0x5a8be0
mov ecx, ebx
mov edx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x14]
mov ax, word [ecx + edx*4]
mov word [esi], ax
movzx eax, byte [ecx + edx*4 + 2]
add ebx, eax
movzx eax, byte [ecx + edx*4 + 3]
mov edx, dword [esp + 0x9c]
add esi, eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x98], ebx
jmp 0x5a8af6
mov edx, dword [esp + 0x14]
cmp esi, dword [esp + 0x3c]
ja 0x5a8c28
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 0x10], eax
mov ecx, ebx
mov eax, edi
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
lea ecx, [edx + eax*4]
mov ax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
add ebx, eax
movzx eax, byte [ecx + 3]
add esi, eax
cmp esi, dword [esp + 0x3c]
jbe 0x5a8bf7
mov dword [esp + 0x98], ebx
cmp esi, dword [esp + 0xa8]
jae 0x5a8c73
mov ecx, ebx
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edi, cl
mov al, byte [edx + edi*4]
mov byte [esi], al
cmp byte [edx + edi*4 + 3], 1
jne 0x5a8c58
movzx eax, byte [edx + edi*4 + 2]
add ebx, eax
jmp 0x5a8c6c
cmp ebx, 0x20
jae 0x5a8c73
movzx eax, byte [edx + edi*4 + 2]
add ebx, eax
cmp ebx, 0x20
cmova ebx, dword [esp + 0x50]
mov dword [esp + 0x98], ebx
lea ecx, [esp + 0x94]
call fcn.005a5dc0
lea ecx, [esp + 0x6c]
mov edx, eax
call fcn.005a5dc0
lea ecx, [esp + 0x80]
and edx, eax
call fcn.005a5dc0
lea ecx, [esp + 0x54]
and edx, eax
call fcn.005a5dc0
test eax, edx
mov ecx, 0xffffffec
mov eax, dword [esp + 0xac]
cmove eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret