Function at 0x5e6c38
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x8910
call fcn.006c9620
mov dword [esp + 0x3c], edx
mov edi, ecx
mov ecx, dword [ebp + 0x14]
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [esp + 0x8908], eax
mov dword [ecx], 8
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 4], eax
push 0x4818
call fcn.00474d30
add esp, 4
mov esi, eax
mov dword [esp + 8], edi
mov dword [eax], edi
mov dword [eax + 0x480c], 0x5ed590
mov dword [eax + 0x4810], 0x5edb50
mov dword [eax + 0x4814], 0x5edc50
xor eax, eax
inc eax
xor ecx, ecx
cpuid
mov dword [esp + 4], edx
bt edx, 0x1a
jae 0x5e6cd2
mov dword [esi + 0x480c], 0x5edcf0
mov dword [esi + 0x4810], 0x5ee5f0
mov dword [esi + 0x4814], 0x5ee7e0
mov dword [esi + 0x47e4], 0
mov dword [esi + 0x47e8], 0xffffffff
mov byte [esi + 0x47c4], 0xff
mov ecx, esi
call fcn.005ee954
mov ebx, eax
cmp al, 0xd8
je 0x5e6d04
mov dword [0x7c0708], str.no_SOI
mov edi, dword [esp + 8]
mov eax, dword [edi + 0xb0]
mov ecx, dword [edi + 0xb4]
mov dword [edi + 0xa8], eax
mov dword [edi + 0xac], ecx
push esi
call fcn.00474d80
add esp, 4
cmp bl, 0xd8
jne 0x5e6d9f
push 0x4818
call fcn.00474d30
add esp, 4
mov ebx, eax
bt dword [esp + 4], 0x1a
mov dword [eax], edi
mov dword [eax + 0x480c], 0x5ed590
mov dword [eax + 0x4810], 0x5edb50
mov dword [eax + 0x4814], 0x5edc50
jae 0x5e6d83
mov dword [ebx + 0x480c], 0x5edcf0
mov dword [ebx + 0x4810], 0x5ee5f0
mov dword [ebx + 0x4814], 0x5ee7e0
mov dword [edi + 8], 0
cmp dword [ebp + 0x10], 4
jbe 0x5e6df7
mov dword [0x7c0708], str.bad_req_comp
jmp 0x5ea2e8
mov ecx, edi
call fcn.005f061a
mov edx, dword [edi + 0xb0]
mov ecx, dword [edi + 0xb4]
mov dword [edi + 0xa8], edx
mov dword [edi + 0xac], ecx
test eax, eax
je 0x5e82e5
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0xb4], xmm0
mov dword [esp + 0xb0], edi
mov ebx, dword [ebp + 0x10]
cmp ebx, 5
jb 0x5e82f9
mov dword [0x7c0708], str.bad_req_comp
xor esi, esi
jmp 0x5ea2f3
xor eax, eax
xor ecx, ecx
mov dword [ebx + ecx + 0x46cc], eax
mov dword [ebx + ecx + 0x46d0], eax
add ecx, 0x48
cmp ecx, 0x120
jne 0x5e6dfb
mov dword [ebx + 0x4804], 0
mov dword [esp + 0xc], ebx
mov ecx, ebx
xor edx, edx
call fcn.005ed493
test eax, eax
je 0x5ea2d8
mov ebx, dword [esp + 0xc]
mov ecx, ebx
call fcn.005ee954
lea ecx, [ebx + 0x469c]
mov dword [esp + 0x30], ecx
lea ecx, [ebx + 0x20b4]
mov dword [esp + 0x20], ecx
cmp al, 0xda
je 0x5e6e75
cmp al, 0xdc
je 0x5e6e9c
cmp al, 0xd9
je 0x5e87c8
movzx edx, al
mov ecx, ebx
call fcn.005eea7d
test eax, eax
jne 0x5e6ec0
jmp 0x5ea2d8
mov ecx, dword [ebx]
call fcn.005ef9cc
mov edi, dword [ebx]
mov edx, dword [edi + 0xa8]
cmp edx, dword [edi + 0xac]
jae 0x5e6ecd
lea ecx, [edx + 1]
mov dword [edi + 0xa8], ecx
mov cl, byte [edx]
jmp 0x5e6f31
mov ecx, dword [ebx]
call fcn.005ef9cc
mov edi, eax
mov ecx, dword [ebx]
call fcn.005ef9cc
cmp edi, 4
jne 0x5e897a
mov ecx, dword [ebx]
cmp eax, dword [ecx + 4]
jne 0x5e8cda
mov ebx, dword [esp + 0xc]
mov ecx, ebx
call fcn.005ee954
jmp 0x5e6e52
cmp dword [edi + 0x20], 0
je 0x5e8d97
mov dword [esp + 4], eax
mov ebx, dword [edi + 0x24]
lea eax, [edi + 0x28]
mov dword [esp + 8], eax
mov ecx, dword [edi + 0x10]
mov esi, dword [edi + 0x1c]
call dword [section..00cfg]
push ebx
push dword [esp + 0xc]
push esi
call ecx
add esp, 0xc
test eax, eax
je 0x5e6f0a
add eax, edi
add eax, 0x28
mov cl, byte [edi + 0x28]
jmp 0x5e6f1a
mov dword [edi + 0x20], 0
lea eax, [edi + 0x29]
mov byte [edi + 0x28], 0
xor ecx, ecx
mov dword [edi + 0xac], eax
lea eax, [edi + 0x29]
mov dword [edi + 0xa8], eax
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 4]
movzx edx, cl
mov dword [ebx + 0x47f0], edx
add cl, 0xfb
mov esi, str.bad_SOS_component_count
cmp cl, 0xfc
jb 0x5ea2d2
mov edi, dword [ebx]
cmp dword [edi + 8], edx
jl 0x5ea2d2
lea ecx, [edx + edx]
add ecx, 6
cmp eax, ecx
jne 0x5e8ce4
xor esi, esi
mov eax, dword [edi + 0xa8]
cmp eax, dword [edi + 0xac]
jae 0x5e6f85
lea ecx, [eax + 1]
mov dword [edi + 0xa8], ecx
mov al, byte [eax]
mov dword [esp + 8], eax
jmp 0x5e6ff8
cmp dword [edi + 0x20], 0
je 0x5e6fc5
mov eax, dword [edi + 0x24]
mov dword [esp + 4], eax
lea eax, [edi + 0x28]
mov dword [esp + 8], eax
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push dword [esp + 4]
push dword [esp + 0xc]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e6fcf
add eax, edi
add eax, 0x28
mov cl, byte [edi + 0x28]
mov dword [esp + 8], ecx
jmp 0x5e6fe5
mov dword [esp + 8], 0
jmp 0x5e6ff8
mov dword [edi + 0x20], 0
lea eax, [edi + 0x29]
mov byte [edi + 0x28], 0
mov dword [esp + 8], 0
mov ebx, dword [esp + 0xc]
mov dword [edi + 0xac], eax
lea eax, [edi + 0x29]
mov dword [edi + 0xa8], eax
mov edi, dword [ebx]
mov eax, dword [edi + 0xa8]
cmp eax, dword [edi + 0xac]
jae 0x5e7019
lea ecx, [eax + 1]
mov dword [edi + 0xa8], ecx
mov al, byte [eax]
mov dword [esp + 4], eax
jmp 0x5e708c
cmp dword [edi + 0x20], 0
je 0x5e7059
mov eax, dword [edi + 0x24]
mov dword [esp + 4], eax
lea eax, [edi + 0x28]
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push dword [esp + 4]
push dword [esp + 0x18]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e7063
add eax, edi
add eax, 0x28
mov cl, byte [edi + 0x28]
mov dword [esp + 4], ecx
jmp 0x5e7079
mov dword [esp + 4], 0
jmp 0x5e708c
mov dword [edi + 0x20], 0
lea eax, [edi + 0x29]
mov byte [edi + 0x28], 0
mov dword [esp + 4], 0
mov ebx, dword [esp + 0xc]
mov dword [edi + 0xac], eax
lea eax, [edi + 0x29]
mov dword [edi + 0xa8], eax
mov edi, dword [ebx]
mov edx, dword [edi + 8]
test edx, edx
jle 0x5e70b1
movzx ebx, byte [esp + 8]
xor ecx, ecx
mov eax, dword [esp + 0x30]
cmp dword [eax], ebx
je 0x5e70b3
inc ecx
add eax, 0x48
cmp edx, ecx
jne 0x5e70a0
jmp 0x5ea2d8
xor ecx, ecx
cmp ecx, edx
je 0x5ea2d8
mov dword [esp + 8], edi
mov edi, esi
movzx eax, byte [esp + 4]
mov ebx, eax
shr ebx, 4
lea edx, [ecx + ecx*8]
mov esi, dword [esp + 0xc]
mov dword [esi + edx*8 + 0x46ac], ebx
cmp al, 0x3f
ja 0x5e878e
mov ebx, esi
and eax, 0xf
mov dword [esi + edx*8 + 0x46b0], eax
cmp eax, 3
ja 0x5e8798
mov esi, edi
mov dword [ebx + edi*4 + 0x47f4], ecx
inc esi
cmp esi, dword [ebx + 0x47f0]
mov edi, dword [esp + 8]
jl 0x5e6f66
mov eax, dword [edi + 0xa8]
cmp eax, dword [edi + 0xac]
jae 0x5e712b
lea ecx, [eax + 1]
mov dword [edi + 0xa8], ecx
mov al, byte [eax]
jmp 0x5e7188
cmp dword [edi + 0x20], 0
je 0x5e7161
mov eax, dword [edi + 0x24]
mov dword [esp + 4], eax
lea ebx, [edi + 0x28]
mov ecx, dword [edi + 0x10]
mov esi, dword [edi + 0x1c]
call dword [section..00cfg]
push dword [esp + 4]
push ebx
push esi
call ecx
add esp, 0xc
test eax, eax
je 0x5e7165
lea ecx, [edi + eax]
add ecx, 0x28
mov al, byte [edi + 0x28]
jmp 0x5e7175
xor eax, eax
jmp 0x5e7188
mov dword [edi + 0x20], 0
lea ecx, [edi + 0x29]
mov byte [edi + 0x28], 0
xor eax, eax
mov ebx, dword [esp + 0xc]
mov dword [edi + 0xac], ecx
lea ecx, [edi + 0x29]
mov dword [edi + 0xa8], ecx
movzx eax, al
mov dword [ebx + 0x47d0], eax
mov esi, dword [ebx]
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x5e71ae
lea ecx, [eax + 1]
mov dword [esi + 0xa8], ecx
mov al, byte [eax]
jmp 0x5e720b
cmp dword [esi + 0x20], 0
je 0x5e71e4
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
lea ebx, [esi + 0x28]
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0x1c]
call dword [section..00cfg]
push dword [esp + 4]
push ebx
push edi
call ecx
add esp, 0xc
test eax, eax
je 0x5e71e8
lea ecx, [esi + eax]
add ecx, 0x28
mov al, byte [esi + 0x28]
jmp 0x5e71f8
xor eax, eax
jmp 0x5e720b
mov dword [esi + 0x20], 0
lea ecx, [esi + 0x29]
mov byte [esi + 0x28], 0
xor eax, eax
mov ebx, dword [esp + 0xc]
mov dword [esi + 0xac], ecx
lea ecx, [esi + 0x29]
mov dword [esi + 0xa8], ecx
movzx eax, al
mov dword [ebx + 0x47d4], eax
mov esi, dword [ebx]
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x5e7231
lea ecx, [eax + 1]
mov dword [esi + 0xa8], ecx
mov dl, byte [eax]
jmp 0x5e728d
cmp dword [esi + 0x20], 0
je 0x5e7266
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
lea ebx, [esi + 0x28]
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0x1c]
call dword [section..00cfg]
push dword [esp + 4]
push ebx
push edi
call ecx
add esp, 0xc
test eax, eax
je 0x5e726a
add eax, esi
add eax, 0x28
mov dl, byte [esi + 0x28]
jmp 0x5e727a
xor edx, edx
jmp 0x5e728d
mov dword [esi + 0x20], 0
lea eax, [esi + 0x29]
mov byte [esi + 0x28], 0
xor edx, edx
mov ebx, dword [esp + 0xc]
mov dword [esi + 0xac], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xa8], eax
movzx ecx, dl
mov eax, ecx
shr eax, 4
mov dword [ebx + 0x47d8], eax
and ecx, 0xf
mov dword [ebx + 0x47dc], ecx
mov eax, dword [ebx + 0x47cc]
mov edi, dword [ebx + 0x47d0]
mov esi, str.bad_SOS
test eax, eax
je 0x5e72f5
cmp edi, 0x3f
jg 0x5ea2d2
mov ebx, dword [ebx + 0x47d4]
cmp ebx, 0x3f
jg 0x5ea2d2
cmp edi, ebx
jg 0x5ea2d2
cmp dl, 0xdf
mov ebx, dword [esp + 0xc]
ja 0x5ea2d2
cmp ecx, 0xd
mov ecx, 0
jbe 0x5e731d
jmp 0x5ea2d2
test edi, edi
jne 0x5ea2d2
cmp dl, 0xf
ja 0x5ea2d2
test ecx, ecx
mov ecx, 0
jne 0x5ea2d2
mov dword [ebx + 0x47d4], 0x3f
mov edi, dword [ebx + 0x4804]
test edi, edi
mov edx, bind
cmove edi, edx
mov edx, dword [ebx + 0x47f0]
mov dword [ebx + 0x47c0], ecx
mov dword [ebx + 0x47bc], ecx
mov dword [ebx + 0x47c8], ecx
mov dword [ebx + 0x478c], ecx
mov dword [ebx + 0x4744], ecx
mov dword [ebx + 0x46fc], ecx
mov dword [ebx + 0x46b4], ecx
mov byte [ebx + 0x47c4], 0xff
mov dword [ebx + 0x4808], edi
mov dword [ebx + 0x47e0], ecx
test eax, eax
je 0x5e7b3f
cmp edx, 1
jne 0x5e7d68
mov eax, dword [ebx + 0x47f4]
mov dword [esp + 0x48], eax
lea eax, [eax + eax*8]
mov ecx, dword [ebx + eax*8 + 0x46bc]
test ecx, ecx
jle 0x5e818a
mov edx, ecx
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + eax*8 + 0x46b8]
lea eax, [ecx + eax*8]
add eax, 0x46d8
mov dword [esp + 0x44], eax
add edx, 7
shr edx, 3
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], esi
lea ecx, [esi + 7]
sar ecx, 3
cmp ecx, 2
mov eax, 1
cmovl ecx, eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], 0
cmp dword [esp + 0x4c], 0
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x44]
jle 0x5e7b27
xor ecx, ecx
mov edx, dword [eax + 4]
imul edx, dword [esp + 0x28]
add edx, ecx
shl edx, 7
add edx, dword [eax]
mov esi, dword [ebx + 0x47d0]
test esi, esi
mov dword [esp + 0x10], ecx
je 0x5e74e3
mov eax, dword [eax - 0x28]
mov dword [esp + 8], eax
cmp dword [ebx + 0x47d8], 0
mov eax, dword [ebx + 0x47dc]
mov dword [esp + 4], edx
je 0x5e7507
mov ecx, eax
xor eax, eax
inc eax
shl eax, cl
mov ecx, eax
mov eax, dword [ebx + 0x47e0]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x5e75c3
dec eax
mov dword [ebx + 0x47e0], eax
cmp esi, dword [ebx + 0x47d4]
jg 0x5e7520
movsx eax, cx
mov dword [esp + 8], eax
neg eax
mov dword [esp + 0x14], eax
dec esi
movzx ebx, byte [esi + 0x7586ab]
cmp word [edx + ebx*2], 0
je 0x5e74d4
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x47c0]
test eax, eax
jg 0x5e749a
mov ecx, edi
call fcn.005f0224
mov eax, dword [edi + 0x47c0]
mov ecx, dword [edi + 0x47bc]
lea edx, [ecx + ecx]
mov dword [edi + 0x47bc], edx
dec eax
mov dword [edi + 0x47c0], eax
test ecx, ecx
mov edx, dword [esp + 4]
jns 0x5e74d4
movsx eax, word [edx + ebx*2]
test dword [esp + 8], eax
jne 0x5e74d4
test ax, ax
mov ecx, dword [esp + 0x14]
cmovg ecx, dword [esp + 0x18]
add ecx, eax
mov word [edx + ebx*2], cx
inc esi
mov eax, dword [esp + 0xc]
cmp esi, dword [eax + 0x47d4]
jl 0x5e7471
jmp 0x5e7520
imul eax, dword [eax - 0x2c], 0x690
add eax, ebx
add eax, 4
mov ecx, ebx
push dword [esp + 0x48]
push eax
call fcn.005f03fb
add esp, 8
test eax, eax
jne 0x5e7520
jmp 0x5ea2d8
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x47e0]
test eax, eax
je 0x5e78a0
dec eax
mov dword [ebx + 0x47e0], eax
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x4808]
lea ecx, [eax - 1]
mov dword [ebx + 0x4808], ecx
cmp eax, 1
jg 0x5e75ab
cmp dword [ebx + 0x47c0], 0x17
jg 0x5e7548
mov ecx, ebx
call fcn.005f0224
mov al, byte [ebx + 0x47c4]
mov ecx, eax
and cl, 0xf8
cmp cl, 0xd0
jne 0x5e8194
xor ecx, ecx
mov dword [ebx + 0x47c0], ecx
mov dword [ebx + 0x47bc], ecx
mov dword [ebx + 0x47c8], ecx
mov dword [ebx + 0x478c], ecx
mov dword [ebx + 0x4744], ecx
mov dword [ebx + 0x46fc], ecx
mov dword [ebx + 0x46b4], ecx
mov byte [ebx + 0x47c4], 0xff
mov eax, dword [ebx + 0x4804]
test eax, eax
mov edx, bind
cmove eax, edx
mov dword [ebx + 0x4808], eax
mov dword [ebx + 0x47e0], ecx
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
jne 0x5e73f6
jmp 0x5e7b27
movsx eax, cx
mov dword [esp + 0x14], eax
neg eax
mov dword [esp + 0x40], eax
imul ecx, dword [esp + 8], 0x690
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
add eax, ecx
mov dword [esp + 0x38], eax
mov ebx, dword [esp + 0xc]
cmp dword [ebx + 0x47c0], 0xf
jg 0x5e75fa
mov ecx, ebx
call fcn.005f0224
mov edi, dword [ebx + 0x47bc]
mov eax, edi
shr eax, 0x17
mov ecx, dword [esp + 0x2c]
add ecx, ebx
mov edx, ebx
movzx ebx, byte [eax + ecx + 0x1a44]
cmp ebx, 0xff
mov dword [esp + 8], ecx
je 0x5e764b
movzx ecx, byte [ebx + ecx + 0x1f44]
mov eax, dword [edx + 0x47c0]
sub eax, ecx
jl 0x5ea2cd
shl edi, cl
mov dword [esp + 0x1c], edi
mov dword [edx + 0x47bc], edi
mov dword [edx + 0x47c0], eax
jmp 0x5e76be
mov dword [esp + 0x1c], edi
mov eax, edi
shr eax, 0x10
xor edx, edx
mov ebx, dword [esp + 0x38]
mov ecx, edx
inc edx
cmp eax, dword [ebx + ecx*4 - 0x44]
jae 0x5e765a
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x47c0]
cmp edx, 8
je 0x5ea2b9
lea ecx, [edx + 9]
cmp eax, ecx
jl 0x5ea2cd
mov dword [esp + 0x24], ecx
mov cl, 0x17
sub cl, dl
mov edi, dword [esp + 0x1c]
mov ebx, edi
shr ebx, cl
and ebx, dword [edx*4 + 0x755994]
mov ecx, dword [esp + 0x38]
add ebx, dword [ecx + edx*4]
sub eax, edx
add eax, 0xfffffff7
mov edx, dword [esp + 0xc]
mov dword [edx + 0x47c0], eax
mov ecx, dword [esp + 0x24]
shl edi, cl
mov dword [esp + 0x1c], edi
mov dword [edx + 0x47bc], edi
mov ecx, dword [esp + 8]
movzx edx, byte [ebx + ecx + 0x1e44]
mov ecx, edx
and ecx, 0xf
mov edi, edx
shr edi, 4
mov dword [esp + 0x24], edi
cmp ecx, 1
je 0x5e772a
test ecx, ecx
mov ebx, dword [esp + 0xc]
jne 0x5ea2cd
mov dword [esp + 0x34], 0
mov dword [esp + 8], 0xf
cmp dl, 0xef
ja 0x5e7770
xor edi, edi
dec edi
mov ecx, dword [esp + 0x24]
shl edi, cl
not edi
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0x47e0], edi
mov dword [esp + 8], 0x40
cmp dl, 0x10
jae 0x5e7839
mov ebx, dword [esp + 0xc]
jmp 0x5e7770
test eax, eax
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
jg 0x5e7749
mov ecx, ebx
call fcn.005f0224
mov edx, dword [ebx + 0x47bc]
mov eax, dword [ebx + 0x47c0]
lea ecx, [edx + edx]
mov dword [ebx + 0x47bc], ecx
dec eax
mov dword [ebx + 0x47c0], eax
test edx, edx
mov eax, dword [esp + 0x14]
cmovns eax, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x47d4]
cmp esi, eax
mov ecx, dword [esp + 4]
jg 0x5e782c
dec esi
mov ebx, esi
movzx esi, byte [esi + 0x7586ab]
cmp word [ecx + esi*2], 0
je 0x5e77ce
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x47c0]
test eax, eax
jg 0x5e77ae
mov ecx, edi
call fcn.005f0224
mov eax, dword [edi + 0x47c0]
mov ecx, dword [edi + 0x47bc]
lea edx, [ecx + ecx]
mov dword [edi + 0x47bc], edx
dec eax
mov dword [edi + 0x47c0], eax
test ecx, ecx
js 0x5e77dd
mov ecx, dword [esp + 4]
jmp 0x5e77fe
mov eax, dword [esp + 8]
test eax, eax
je 0x5e7815
dec eax
mov dword [esp + 8], eax
jmp 0x5e77fe
mov ecx, dword [esp + 4]
movsx eax, word [ecx + esi*2]
test dword [esp + 0x14], eax
jne 0x5e77fe
test ax, ax
jle 0x5e77f6
add eax, dword [esp + 0x18]
jmp 0x5e77fa
sub eax, dword [esp + 0x18]
mov word [ecx + esi*2], ax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x47d4]
lea esi, [ebx + 1]
cmp esi, eax
jl 0x5e7783
jmp 0x5e7827
mov eax, dword [esp + 0x34]
mov word [ecx + esi*2], ax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x47d4]
add ebx, 2
mov esi, ebx
cmp esi, eax
jle 0x5e75e6
jmp 0x5e7520
mov ebx, edi
cmp eax, ecx
jge 0x5e7864
mov ebx, dword [esp + 0xc]
mov ecx, ebx
call fcn.005f0224
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 0x47bc]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x47c0]
mov ebx, dword [ebx + 0x47e0]
mov edi, dword [esp + 0x1c]
rol edi, cl
mov edx, dword [ecx*4 + 0x755970]
mov dword [esp + 0x1c], edx
not edx
and edx, edi
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x47bc], edx
and edi, dword [esp + 0x1c]
add edi, ebx
mov ebx, ecx
sub eax, dword [esp + 0x24]
mov dword [ecx + 0x47c0], eax
mov dword [ecx + 0x47e0], edi
jmp 0x5e7770
imul ecx, dword [esp + 8], 0x690
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
add eax, ecx
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
cmp dword [edi + 0x47c0], 0xf
jg 0x5e78ce
mov ecx, edi
call fcn.005f0224
mov edx, dword [edi + 0x47bc]
mov ecx, edx
shr ecx, 0x17
mov eax, dword [esp + 8]
shl eax, 0xa
add eax, edi
movsx eax, word [eax + ecx*2 + 0x3684]
test eax, eax
je 0x5e7925
mov ecx, eax
and ecx, 0xf
shl edx, cl
mov dword [edi + 0x47bc], edx
mov edx, eax
shr edx, 4
sub dword [edi + 0x47c0], ecx
sar eax, 8
mov ecx, ebx
shl eax, cl
and edx, 0xf
movzx ecx, byte [edx + esi + 0x7586aa]
mov ebx, dword [esp + 4]
mov word [ebx + ecx*2], ax
jmp 0x5e7a8b
cmp dword [edi + 0x47c0], 0xf
jg 0x5e7940
mov ecx, edi
call fcn.005f0224
mov edx, dword [edi + 0x47bc]
mov ecx, edx
shr ecx, 0x17
mov eax, dword [esp + 0x2c]
add eax, edi
movzx ebx, byte [ecx + eax + 0x1a44]
cmp ebx, 0xff
mov dword [esp + 0x1c], eax
je 0x5e7984
movzx ecx, byte [ebx + eax + 0x1f44]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x47c0]
sub edi, ecx
jl 0x5ea2cd
shl edx, cl
mov dword [eax + 0x47bc], edx
mov dword [eax + 0x47c0], edi
jmp 0x5e79ed
mov ecx, edx
shr ecx, 0x10
xor eax, eax
mov ebx, dword [esp + 0x34]
mov edi, eax
inc eax
cmp ecx, dword [ebx + edi*4 - 0x44]
jae 0x5e798f
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + 0x47c0]
cmp eax, 8
je 0x5ea2c4
lea ebx, [eax + 9]
mov ecx, ebx
mov dword [esp + 0x24], ebx
cmp edi, ebx
jl 0x5ea2cd
mov cl, 0x17
sub cl, al
mov ebx, edx
shr ebx, cl
and ebx, dword [eax*4 + 0x755994]
mov ecx, dword [esp + 0x34]
add ebx, dword [ecx + eax*4]
sub edi, eax
add edi, 0xfffffff7
mov eax, dword [esp + 0xc]
mov dword [eax + 0x47c0], edi
mov ecx, dword [esp + 0x24]
shl edx, cl
mov dword [eax + 0x47bc], edx
mov eax, dword [esp + 0x1c]
movzx ebx, byte [ebx + eax + 0x1e44]
mov ecx, ebx
shr ecx, 4
mov eax, ebx
and eax, 0xf
je 0x5e7aa3
mov dword [esp + 0x1c], ecx
cmp edi, eax
jge 0x5e7a2c
mov edi, dword [esp + 0xc]
mov ecx, edi
mov ebx, eax
call fcn.005f0224
mov eax, ebx
mov edx, dword [edi + 0x47bc]
mov edi, dword [edi + 0x47c0]
mov dword [esp + 0x18], edi
mov ebx, edx
mov ecx, eax
rol edx, cl
mov dword [esp + 0x24], eax
mov eax, dword [eax*4 + 0x755970]
mov ecx, eax
not ecx
and ecx, edx
mov edi, dword [esp + 0xc]
mov dword [edi + 0x47bc], ecx
and edx, eax
sar ebx, 0x1f
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
sub eax, ecx
not ebx
and ebx, dword [ecx*4 + 0x758838]
add ebx, edx
mov ecx, dword [esp + 0x14]
shl ebx, cl
mov dword [edi + 0x47c0], eax
mov edx, dword [esp + 0x1c]
movzx eax, byte [edx + esi + 0x7586aa]
mov ecx, dword [esp + 4]
mov word [ecx + eax*2], bx
add esi, edx
inc esi
cmp esi, dword [edi + 0x47d4]
mov ebx, dword [esp + 0x14]
jle 0x5e78ba
jmp 0x5e7520
cmp bl, 0xef
jbe 0x5e7ab1
add esi, 0x10
mov edi, dword [esp + 0xc]
jmp 0x5e7a8e
xor eax, eax
inc eax
mov dword [esp + 0x1c], ecx
shl eax, cl
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x47e0], eax
cmp bl, 0x10
jae 0x5e7ad2
mov ebx, dword [esp + 0xc]
jmp 0x5e7519
cmp edi, dword [esp + 0x1c]
jge 0x5e7af5
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.005f0224
mov edx, dword [esi + 0x47bc]
mov edi, dword [esi + 0x47c0]
mov eax, dword [esi + 0x47e0]
mov ecx, dword [esp + 0x1c]
rol edx, cl
mov esi, dword [ecx*4 + 0x755970]
mov dword [esp + 4], esi
not esi
and esi, edx
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0x47bc], esi
and edx, dword [esp + 4]
add eax, edx
sub edi, ecx
mov dword [ebx + 0x47c0], edi
jmp 0x5e7519
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x54]
jne 0x5e73e1
jmp 0x5e818a
pcmpeqd xmm0, xmm0
cmp edx, 1
jne 0x5e7efe
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
mov eax, dword [ebx + 0x47f4]
mov dword [esp + 0x24], eax
lea eax, [eax + eax*8]
mov edx, dword [ebx + eax*8 + 0x46bc]
xor ecx, ecx
inc ecx
test edx, edx
jle 0x5e8182
mov ecx, dword [ebx + eax*8 + 0x46b8]
add edx, 7
shr edx, 3
mov dword [esp + 0x34], edx
mov edx, ecx
lea esi, [ecx + 7]
sar esi, 3
cmp esi, 2
mov ecx, 1
cmovl esi, ecx
lea edi, [ebx + eax*8]
add edi, 0x46b0
shl esi, 3
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], edi
test edx, edx
jle 0x5e7d47
mov dword [esp + 0x14], 0
mov eax, dword [edi]
mov ecx, dword [edi - 8]
shl ecx, 7
mov ebx, dword [esp + 0xc]
add ecx, ebx
add ecx, 0x3484
mov dword [esp + 4], ecx
imul ecx, eax, 0x690
shl eax, 0xa
add eax, ebx
add eax, 0x3684
add ecx, ebx
add ecx, 0x1a44
mov dword [esp + 8], ecx
imul ecx, dword [edi - 4], 0x690
lea esi, [ebx + ecx]
add esi, 4
mov ecx, ebx
lea edx, [esp + 0xb0]
push dword [esp + 4]
push dword [esp + 0x28]
push eax
push dword [esp + 0x14]
push esi
call fcn.005efec8
add esp, 0x14
test eax, eax
je 0x5e8180
mov ecx, dword [ebx + 0x480c]
mov eax, dword [edi + 0x10]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x1c]
imul esi, eax
add esi, dword [edi + 0x18]
mov edi, dword [esp + 0x14]
add esi, edi
call dword [section..00cfg]
lea eax, [esp + 0xb0]
push eax
push dword [esp + 8]
push esi
call ecx
add esp, 0xc
mov eax, dword [ebx + 0x4808]
lea ecx, [eax - 1]
mov dword [ebx + 0x4808], ecx
cmp eax, 1
jg 0x5e7d32
cmp dword [ebx + 0x47c0], 0x17
jg 0x5e7cd0
mov ecx, ebx
call fcn.005f0224
mov al, byte [ebx + 0x47c4]
and al, 0xf8
cmp al, 0xd0
mov ecx, 0
jne 0x5e817b
mov dword [ebx + 0x47c0], ecx
mov dword [ebx + 0x47bc], ecx
mov dword [ebx + 0x47c8], ecx
mov dword [ebx + 0x478c], ecx
mov dword [ebx + 0x4744], ecx
mov dword [ebx + 0x46fc], ecx
mov dword [ebx + 0x46b4], ecx
mov byte [ebx + 0x47c4], 0xff
mov eax, dword [ebx + 0x4804]
test eax, eax
mov edx, bind
cmove eax, edx
mov dword [ebx + 0x4808], eax
mov dword [ebx + 0x47e0], ecx
add edi, 8
mov dword [esp + 0x14], edi
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0x10]
jne 0x5e7c0f
mov eax, dword [esp + 0x2c]
inc eax
add dword [esp + 0x1c], 8
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
jne 0x5e7bff
jmp 0x5e817b
mov edx, dword [ebx + 0x4690]
test edx, edx
jle 0x5e818a
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x468c]
mov dword [esp + 4], 0
test ecx, ecx
jle 0x5e7ee8
mov dword [esp + 8], 0
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x47f0]
test ecx, ecx
jle 0x5e7e48
xor edi, edi
mov eax, dword [esi + edi*4 + 0x47f4]
mov dword [esp + 0x14], eax
lea eax, [eax + eax*8]
mov edx, dword [esi + eax*8 + 0x46a4]
test edx, edx
jle 0x5e7e39
mov dword [esp + 0x1c], edi
lea esi, [esi + eax*8]
add esi, 0x46a4
mov eax, dword [esi - 4]
xor edi, edi
test eax, eax
jle 0x5e7e26
xor ebx, ebx
imul eax, dword [esp + 8]
imul edx, dword [esp + 4]
add edx, edi
imul edx, dword [esi + 0x38]
add edx, eax
add edx, ebx
shl edx, 7
add edx, dword [esi + 0x34]
imul eax, dword [esi + 8], 0x690
mov ecx, dword [esp + 0xc]
add eax, ecx
add eax, 4
push dword [esp + 0x14]
push eax
call fcn.005f03fb
add esp, 8
test eax, eax
je 0x5ea2d8
inc ebx
mov eax, dword [esi - 4]
mov edx, dword [esi]
cmp ebx, eax
jl 0x5e7ddd
inc edi
cmp edi, edx
jl 0x5e7dd7
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x47f0]
mov edi, dword [esp + 0x1c]
inc edi
cmp edi, ecx
jl 0x5e7dac
mov edi, dword [esi + 0x4808]
lea ecx, [edi - 1]
mov dword [esi + 0x4808], ecx
cmp edi, 1
mov edi, ecx
jg 0x5e7ecb
cmp dword [esi + 0x47c0], 0x17
jg 0x5e7e68
mov ecx, esi
call fcn.005f0224
mov al, byte [esi + 0x47c4]
mov ecx, eax
and cl, 0xf8
cmp cl, 0xd0
jne 0x5e8194
xor ecx, ecx
mov dword [esi + 0x47c0], ecx
mov dword [esi + 0x47bc], ecx
mov dword [esi + 0x47c8], ecx
mov dword [esi + 0x478c], ecx
mov dword [esi + 0x4744], ecx
mov dword [esi + 0x46fc], ecx
mov dword [esi + 0x46b4], ecx
mov byte [esi + 0x47c4], 0xff
mov edi, dword [esi + 0x4804]
test edi, edi
mov edx, bind
cmove edi, edx
mov dword [esi + 0x4808], edi
mov dword [esi + 0x47e0], ecx
mov edx, dword [esp + 8]
inc edx
mov ecx, dword [esi + 0x468c]
mov dword [esp + 8], edx
cmp edx, ecx
jl 0x5e7d9c
mov edx, dword [esi + 0x4690]
mov esi, dword [esp + 4]
inc esi
mov dword [esp + 4], esi
cmp esi, edx
jl 0x5e7d88
jmp 0x5e818a
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
mov edx, dword [ebx + 0x4690]
xor ecx, ecx
inc ecx
test edx, edx
jle 0x5e8182
mov ecx, dword [ebx + 0x468c]
mov dword [esp + 0x10], 0
xor esi, esi
test ecx, ecx
jle 0x5e816a
mov dword [esp + 0x2c], 0
mov ecx, dword [ebx + 0x47f0]
test ecx, ecx
jle 0x5e80d4
xor edi, edi
mov eax, dword [ebx + edi*4 + 0x47f4]
mov dword [esp + 0x18], eax
lea eax, [eax + eax*8]
mov edx, ebx
mov ebx, dword [ebx + eax*8 + 0x46a4]
test ebx, ebx
jle 0x5e80c3
mov dword [esp + 0x28], edi
lea edx, [edx + eax*8]
add edx, 0x46a4
mov esi, dword [edx - 4]
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], edx
test esi, esi
jle 0x5e80a2
mov dword [esp + 0x1c], 0
mov eax, dword [edx + 0xc]
mov edi, dword [edx + 4]
shl edi, 7
mov ecx, dword [esp + 0xc]
add edi, ecx
add edi, 0x3484
mov dword [esp + 4], edi
imul edi, eax, 0x690
shl eax, 0xa
add eax, ecx
add eax, 0x3684
mov dword [esp + 8], eax
lea eax, [ecx + edi]
add eax, 0x1a44
mov dword [esp + 0x14], eax
imul eax, dword [edx + 8], 0x690
add eax, ecx
add eax, 4
mov edi, edx
lea edx, [esp + 0xb0]
push dword [esp + 4]
push dword [esp + 0x1c]
push dword [esp + 0x10]
push dword [esp + 0x20]
push eax
call fcn.005efec8
add esp, 0x14
test eax, eax
je 0x5e8180
imul ebx, dword [esp + 0x10]
add ebx, dword [esp + 0x24]
imul esi, dword [esp + 0x2c]
mov eax, edi
mov edi, dword [esp + 0x1c]
add esi, edi
mov ecx, dword [eax + 0x1c]
mov dword [esp + 4], ecx
imul ebx, ecx
shl ebx, 3
add ebx, dword [eax + 0x24]
lea esi, [ebx + esi*8]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x480c]
call dword [section..00cfg]
lea eax, [esp + 0xb0]
push eax
push dword [esp + 8]
push esi
call ecx
add esp, 0xc
inc edi
mov edx, dword [esp + 0x34]
mov esi, dword [edx - 4]
mov ebx, dword [edx]
mov dword [esp + 0x1c], edi
cmp edi, esi
jl 0x5e7fd2
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, ebx
jl 0x5e7fc2
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x47f0]
xor esi, esi
mov edi, dword [esp + 0x28]
inc edi
cmp edi, ecx
mov ebx, edx
jl 0x5e7f87
mov edi, dword [ebx + 0x4808]
lea ecx, [edi - 1]
mov dword [ebx + 0x4808], ecx
cmp edi, 1
mov edi, ecx
jg 0x5e814d
cmp dword [ebx + 0x47c0], 0x17
jg 0x5e80f4
mov ecx, ebx
call fcn.005f0224
mov al, byte [ebx + 0x47c4]
and al, 0xf8
cmp al, 0xd0
jne 0x5e817b
mov dword [ebx + 0x47c0], esi
mov dword [ebx + 0x47bc], esi
mov dword [ebx + 0x47c8], esi
mov dword [ebx + 0x478c], esi
mov dword [ebx + 0x4744], esi
mov dword [ebx + 0x46fc], esi
mov dword [ebx + 0x46b4], esi
mov byte [ebx + 0x47c4], 0xff
mov edi, dword [ebx + 0x4804]
test edi, edi
mov ecx, bind
cmove edi, ecx
mov dword [ebx + 0x4808], edi
mov dword [ebx + 0x47e0], esi
mov edx, dword [esp + 0x2c]
inc edx
mov ecx, dword [ebx + 0x468c]
mov dword [esp + 0x2c], edx
cmp edx, ecx
jl 0x5e7f77
mov edx, dword [ebx + 0x4690]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, edx
jl 0x5e7f67
xor ecx, ecx
inc ecx
jmp 0x5e8182
xor ecx, ecx
test ecx, ecx
je 0x5ea2d8
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x47c4]
cmp al, 0xff
jne 0x5e6ec0
mov edx, dword [esp + 0xc]
mov esi, dword [edx]
cmp dword [esi + 0x10], 0
je 0x5e81c8
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x1c]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
test eax, eax
je 0x5e81da
cmp dword [esi + 0x20], 0
je 0x5e6ec0
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x5e6ec0
mov edx, dword [esp + 0xc]
mov esi, dword [edx]
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x5e81fb
lea ecx, [eax + 1]
mov dword [esi + 0xa8], ecx
mov al, byte [eax]
jmp 0x5e8258
cmp dword [esi + 0x20], 0
je 0x5e8231
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
lea ebx, [esi + 0x28]
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0x1c]
call dword [section..00cfg]
push dword [esp + 4]
push ebx
push edi
call ecx
add esp, 0xc
test eax, eax
je 0x5e8235
lea ecx, [esi + eax]
add ecx, 0x28
mov al, byte [esi + 0x28]
jmp 0x5e8245
xor eax, eax
jmp 0x5e8258
mov dword [esi + 0x20], 0
lea ecx, [esi + 0x29]
mov byte [esi + 0x28], 0
xor eax, eax
mov dword [esi + 0xac], ecx
lea ecx, [esi + 0x29]
mov dword [esi + 0xa8], ecx
mov edx, dword [esp + 0xc]
cmp al, 0xff
jne 0x5e81a0
mov esi, dword [edx]
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x5e827d
lea ecx, [eax + 1]
mov dword [esi + 0xa8], ecx
mov al, byte [eax]
jmp 0x5e82da
cmp dword [esi + 0x20], 0
je 0x5e82b3
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
lea ebx, [esi + 0x28]
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0x1c]
call dword [section..00cfg]
push dword [esp + 4]
push ebx
push edi
call ecx
add esp, 0xc
test eax, eax
je 0x5e82b7
lea ecx, [esi + eax]
add ecx, 0x28
mov al, byte [esi + 0x28]
jmp 0x5e82c7
xor eax, eax
jmp 0x5e82da
mov dword [esi + 0x20], 0
lea ecx, [esi + 0x29]
mov byte [esi + 0x28], 0
xor eax, eax
mov edx, dword [esp + 0xc]
mov dword [esi + 0xac], ecx
lea ecx, [esi + 0x29]
mov dword [esi + 0xa8], ecx
mov byte [edx + 0x47c4], al
jmp 0x5e6ec0
cmp edx, ecx
jae 0x5e834d
lea eax, [edx + 1]
mov dword [edi + 0xa8], eax
mov dl, byte [edx]
jmp 0x5e83d9
lea ecx, [esp + 0xb0]
xor esi, esi
xor edx, edx
push ebx
call fcn.005f06d0
add esp, 4
test eax, eax
je 0x5e8387
mov eax, dword [esp + 0xc0]
cmp eax, 9
mov ecx, 8
cmovge ecx, eax
mov edx, dword [ebp + 0x14]
mov dword [edx], ecx
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xbc]
test ebx, ebx
je 0x5e8341
mov edx, dword [esi + 0xc]
cmp edx, ebx
jne 0x5e8393
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 8]
jmp 0x5e8455
cmp dword [edi + 0x20], 0
je 0x5e8514
mov esi, dword [edi + 0x24]
lea eax, [edi + 0x28]
mov dword [esp + 4], eax
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push esi
push dword [esp + 8]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e83ba
lea ecx, [edi + eax]
add ecx, 0x28
mov dl, byte [edi + 0x28]
jmp 0x5e83ca
mov eax, dword [esp + 0xbc]
jmp 0x5e846e
mov ecx, dword [esi]
mov dword [esp + 4], ecx
mov ebx, dword [esi + 4]
mov ecx, edi
cmp eax, 8
jg 0x5e8430
push ebx
push dword [esp + 8]
mov edi, dword [ebp + 0x10]
push edi
call fcn.005f17d6
jmp 0x5e843e
mov dword [edi + 0x20], 0
lea ecx, [edi + 0x29]
mov byte [edi + 0x28], 0
xor edx, edx
mov dword [edi + 0xac], ecx
lea eax, [edi + 0x29]
mov dword [edi + 0xa8], eax
cmp dl, 0x42
jne 0x5e8514
cmp eax, ecx
jae 0x5e83f6
lea ecx, [eax + 1]
mov dword [edi + 0xa8], ecx
mov al, byte [eax]
jmp 0x5e84b1
cmp dword [edi + 0x20], 0
je 0x5e8514
mov esi, dword [edi + 0x24]
lea eax, [edi + 0x28]
mov dword [esp + 4], eax
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push esi
push dword [esp + 8]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e8492
lea ecx, [edi + eax]
add ecx, 0x28
mov al, byte [edi + 0x28]
jmp 0x5e84a2
push ebx
push dword [esp + 8]
mov edi, dword [ebp + 0x10]
push edi
call fcn.005f1b5f
add esp, 0xc
mov dword [esi + 0xc], edi
mov edi, eax
test eax, eax
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 8]
je 0x5e6df0
mov eax, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [edx], eax
xor eax, eax
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x5e846c
mov ecx, dword [esi + 8]
mov dword [edx], ecx
mov esi, edi
push eax
call fcn.00474d80
add esp, 4
push dword [esp + 0xb8]
call fcn.00474d80
add esp, 4
push dword [esp + 0xb4]
jmp 0x5ea2eb
mov dword [edi + 0x20], 0
lea ecx, [edi + 0x29]
mov byte [edi + 0x28], 0
xor eax, eax
mov dword [edi + 0xac], ecx
lea ecx, [edi + 0x29]
mov dword [edi + 0xa8], ecx
cmp al, 0x4d
jne 0x5e8514
mov ecx, edi
call fcn.005f2b9f
mov ecx, edi
call fcn.005f2b9f
mov ecx, edi
call fcn.005f2b9f
mov ecx, edi
call fcn.005f2b9f
mov ecx, edi
call fcn.005f2b9f
mov ecx, edi
call fcn.005f2b9f
mov ecx, edi
call fcn.005f2b9f
mov esi, eax
mov ecx, edi
call fcn.005f2b9f
shl eax, 0x10
add eax, esi
cmp eax, 0x37
jg 0x5e8628
cmp eax, 0xc
je 0x5e8636
cmp eax, 0x28
je 0x5e8636
jmp 0x5e87a2
mov eax, dword [edi + 0xb0]
mov ecx, dword [edi + 0xb4]
mov dword [edi + 0xa8], eax
mov dword [edi + 0xac], ecx
mov ecx, edi
call fcn.005ea446
test eax, eax
je 0x5e85a4
xor eax, eax
lea esi, [esp + 0xb0]
push 0x8858
push eax
push esi
call fcn.006ccfc0
add esp, 0xc
mov ecx, edi
mov edx, esi
xor esi, esi
push esi
push dword [ebp + 0xc]
call fcn.005f30de
add esp, 8
cmp eax, edi
cmove eax, esi
test eax, eax
je 0x5e85d1
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0x3c]
mov dword [ecx], esi
mov edi, dword [esp + 0xb4]
mov ecx, dword [ebp + 8]
mov dword [ecx], edi
mov ebx, dword [ebp + 0x10]
test ebx, 0xfffffffb
je 0x5e85a0
mov ecx, eax
mov edx, 4
push edi
push esi
push ebx
call fcn.005f17d6
add esp, 0xc
mov esi, eax
jmp 0x5e85e5
mov ecx, edi
call fcn.005ea72a
test eax, eax
je 0x5e8600
mov ecx, edi
mov edx, dword [esp + 0x3c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005ea76d
add esp, 0x14
jmp 0x5e8787
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x5e85e5
push eax
call fcn.00474d80
add esp, 4
push dword [esp + 0xc0]
call fcn.00474d80
add esp, 4
push dword [esp + 0xbc]
jmp 0x5ea2eb
mov ecx, edi
call fcn.005eafab
test eax, eax
je 0x5e8761
mov ecx, edi
mov edx, dword [esp + 0x3c]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005eb078
jmp 0x5e8784
cmp eax, 0x38
je 0x5e8636
cmp eax, 0x6c
jne 0x5e87a2
mov eax, dword [edi + 0xb0]
mov ecx, dword [edi + 0xb4]
mov dword [edi + 0xa8], eax
mov dword [edi + 0xac], ecx
mov esi, 0xff
lea eax, [esp + 0xb0]
push 0x400
push esi
push eax
call fcn.006ccfc0
add esp, 0xc
pcmpeqd xmm0, xmm0
lea edx, [esp + 0x90]
movdqu xmmword [edx + 0xc], xmm0
movdqa xmmword [edx], xmm0
mov dword [edx + 0x1c], esi
mov ecx, edi
call fcn.005f2ca0
xor esi, esi
test eax, eax
je 0x5ea2f3
mov eax, dword [edi + 4]
mov esi, eax
neg esi
mov dword [esp + 0x68], eax
cmovs esi, eax
mov dword [edi + 4], esi
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
cmp eax, 0xc
mov dword [esp + 0x10], ecx
jne 0x5e86f5
cmp ebx, 0x17
mov eax, dword [ebp + 0x10]
jg 0x5e8724
mov eax, dword [esp + 0x94]
add eax, 0xffffffda
mov ecx, 0x55555556
imul ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x30]
shr edx, 0x1f
add edx, dword [esp + 0x30]
jmp 0x5e870e
cmp ebx, 0xf
mov eax, dword [ebp + 0x10]
jg 0x5e8724
mov edx, dword [esp + 0x94]
sub edx, dword [esp + 4]
add edx, 0xfffffff2
sar edx, 2
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebx
cmp ecx, 0xff000000
sete dl
jmp 0x5e8988
cmp ecx, 0xff000000
sete dl
mov dword [esp + 0x20], 0
cmp ebx, 0x18
jne 0x5e8984
cmp ecx, 0xff000000
jne 0x5e8984
mov ebx, 3
mov dword [esp + 0x1c], 0x18
mov byte [esp + 0x24], 1
jmp 0x5e8997
mov ecx, edi
call fcn.005eb93f
test eax, eax
je 0x5e8d54
mov ecx, edi
mov edx, dword [esp + 0x3c]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005eba5b
add esp, 0xc
mov esi, eax
jmp 0x5ea2f3
mov esi, str.bad_DC_huff
jmp 0x5ea2d2
mov esi, str.bad_AC_huff
jmp 0x5ea2d2
mov ecx, dword [edi + 0xb0]
mov edx, dword [edi + 0xb4]
mov dword [edi + 0xa8], ecx
mov dword [edi + 0xac], edx
cmp eax, 0x7c
jne 0x5e852c
jmp 0x5e864e
cmp dword [ebx + 0x47cc], 0
mov esi, dword [ebx]
mov eax, dword [esi + 8]
je 0x5e8929
test eax, eax
jle 0x5e8deb
lea eax, [ebx + 0x3484]
mov dword [esp + 0x10], eax
xor ecx, ecx
lea eax, [ecx + ecx*8]
mov edx, dword [ebx + eax*8 + 0x46bc]
test edx, edx
jle 0x5e891d
mov dword [esp + 0x28], ecx
mov ecx, dword [ebx + eax*8 + 0x46b8]
lea esi, [ebx + eax*8]
add esi, 0x46d8
add edx, 7
shr edx, 3
mov dword [esp + 0x34], ecx
add ecx, 7
sar ecx, 3
cmp ecx, 2
mov eax, 1
cmovl ecx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], esi
cmp dword [esp + 0x34], 0
jle 0x5e88f7
mov eax, dword [esp + 0x14]
lea eax, [eax*8]
mov dword [esp + 0x1c], eax
xor edx, edx
xor ebx, ebx
mov ecx, esi
mov esi, dword [esi]
mov eax, dword [ecx + 4]
mov edi, eax
imul edi, dword [esp + 0x14]
add edi, ebx
shl edi, 7
add edi, esi
mov ecx, dword [ecx - 0x30]
mov dword [esp + 4], edx
lea edx, [esi + edx*2]
imul eax, dword [esp + 0x20]
add eax, edx
shl ecx, 7
add ecx, dword [esp + 0x10]
xor edx, edx
movzx esi, word [eax + edx*2]
imul si, word [ecx + edx*2]
mov word [eax + edx*2], si
inc edx
cmp edx, 0x40
jne 0x5e8898
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x480c]
mov esi, dword [esp + 0x24]
mov edx, dword [esi - 0x18]
mov dword [esp + 8], edx
mov eax, dword [esp + 0x1c]
imul eax, edx
add eax, dword [esi - 0x10]
lea eax, [eax + ebx*8]
mov dword [esp + 0x30], eax
call dword [section..00cfg]
push edi
push dword [esp + 0xc]
push dword [esp + 0x38]
call ecx
add esp, 0xc
inc ebx
mov edx, dword [esp + 4]
add edx, 0x40
cmp ebx, dword [esp + 0x18]
jne 0x5e8869
mov ecx, dword [esp + 0x14]
inc ecx
sub dword [esp + 0x20], 0xffffff80
mov edx, dword [esp + 0x2c]
mov eax, ecx
mov dword [esp + 0x14], ecx
cmp ecx, edx
jne 0x5e884b
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx]
mov ecx, dword [esp + 0x28]
inc ecx
mov eax, dword [esi + 8]
cmp ecx, eax
jl 0x5e87ee
xor ecx, ecx
cmp eax, 3
setge cl
mov edx, dword [ebp + 0x10]
test edx, edx
lea ecx, [ecx + ecx + 1]
cmovne ecx, edx
mov dword [esp + 0x10], ecx
cmp eax, 3
jne 0x5e8dfa
mov dl, 1
mov eax, 3
cmp dword [ebx + 0x47ec], 3
je 0x5e8dfc
cmp dword [ebx + 0x47e8], 0
jne 0x5e8dfa
cmp dword [ebx + 0x47e4], 0
sete dl
jmp 0x5e8dfc
mov esi, str.bad_DNL_len
jmp 0x5ea2d2
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x24], dl
cmp ecx, 1
mov ebx, 4
sbb ebx, 0
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x30], ecx
mov dword [edi + 8], ebx
cmp eax, 3
cmovge ebx, eax
mov edi, dword [edi]
mov ecx, ebx
mov edx, edi
push 0
push esi
call fcn.005efc2f
add esp, 8
test eax, eax
je 0x5e8ccb
mov dword [esp + 0xc], ebx
mov ecx, ebx
mov edx, edi
push 0
push esi
call fcn.005efd32
add esp, 8
test eax, eax
je 0x5e8cee
mov ebx, eax
mov esi, dword [esp + 0x1c]
cmp esi, 0xf
mov dword [esp + 0x14], eax
jg 0x5e8cfd
mov edx, dword [esp + 0x20]
test edx, edx
mov esi, 0
mov eax, dword [esp + 8]
je 0x5e8dab
cmp edx, 0x100
jg 0x5e8dab
lea ecx, [eax + 0x28]
mov dword [esp + 0x24], ecx
add eax, 0x29
mov dword [esp + 0x18], eax
test edx, edx
jle 0x5e8c70
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0xa8]
mov eax, dword [eax + 0xac]
xor edi, edi
cmp ecx, eax
jae 0x5e8a73
lea esi, [ecx + 1]
mov edx, dword [esp + 8]
mov dword [edx + 0xa8], esi
mov dl, byte [ecx]
mov ecx, esi
jmp 0x5e8ad7
mov esi, dword [esp + 8]
cmp dword [esi + 0x20], 0
je 0x5e8ab0
mov eax, dword [esi + 0x24]
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x10]
mov ebx, dword [esi + 0x1c]
call dword [section..00cfg]
push dword [esp + 0x10]
push dword [esp + 0x28]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e8ab4
add eax, esi
add eax, 0x28
mov dl, byte [esi + 0x28]
mov ecx, dword [esp + 0x18]
jmp 0x5e8ac7
xor edx, edx
jmp 0x5e8ad7
mov dword [esi + 0x20], 0
mov byte [esi + 0x28], 0
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov dword [esi + 0xac], eax
mov dword [esi + 0xa8], ecx
mov ebx, dword [esp + 0x14]
mov byte [esp + edi*4 + 0xb2], dl
cmp ecx, eax
jae 0x5e8af5
lea esi, [ecx + 1]
mov edx, dword [esp + 8]
mov dword [edx + 0xa8], esi
mov dl, byte [ecx]
mov ecx, esi
jmp 0x5e8b59
mov esi, dword [esp + 8]
cmp dword [esi + 0x20], 0
je 0x5e8b32
mov eax, dword [esi + 0x24]
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x10]
mov ebx, dword [esi + 0x1c]
call dword [section..00cfg]
push dword [esp + 0x10]
push dword [esp + 0x28]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e8b36
add eax, esi
add eax, 0x28
mov dl, byte [esi + 0x28]
mov ecx, dword [esp + 0x18]
jmp 0x5e8b49
xor edx, edx
jmp 0x5e8b59
mov dword [esi + 0x20], 0
mov byte [esi + 0x28], 0
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov dword [esi + 0xac], eax
mov dword [esi + 0xa8], ecx
mov ebx, dword [esp + 0x14]
mov byte [esp + edi*4 + 0xb1], dl
cmp ecx, eax
jae 0x5e8b79
lea esi, [ecx + 1]
mov edx, dword [esp + 8]
mov dword [edx + 0xa8], esi
mov dl, byte [ecx]
mov ecx, esi
xor esi, esi
jmp 0x5e8be3
mov ebx, dword [esp + 8]
cmp dword [ebx + 0x20], 0
je 0x5e8bb8
mov esi, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x10], eax
call dword [section..00cfg]
push esi
push dword [esp + 0x28]
push dword [esp + 0x18]
call ecx
add esp, 0xc
test eax, eax
je 0x5e8bbe
add eax, ebx
add eax, 0x28
mov dl, byte [ebx + 0x28]
xor esi, esi
mov ecx, dword [esp + 0x18]
jmp 0x5e8bd3
xor edx, edx
xor esi, esi
jmp 0x5e8bdf
mov dword [ebx + 0x20], 0
mov byte [ebx + 0x28], 0
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, ecx
xor esi, esi
mov dword [ebx + 0xac], eax
mov dword [ebx + 0xa8], ecx
mov ebx, dword [esp + 0x14]
mov byte [esp + edi*4 + 0xb0], dl
cmp dword [esp + 4], 0xc
je 0x5e8c5d
cmp ecx, eax
jae 0x5e8bfc
inc ecx
mov ebx, dword [esp + 8]
jmp 0x5e8c53
mov edx, dword [esp + 8]
cmp dword [edx + 0x20], 0
je 0x5e8c5d
mov ebx, dword [esp + 8]
mov esi, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x10], eax
call dword [section..00cfg]
push esi
push dword [esp + 0x28]
push dword [esp + 0x18]
call ecx
add esp, 0xc
test eax, eax
je 0x5e8c3a
add eax, ebx
add eax, 0x28
mov ecx, dword [esp + 0x18]
jmp 0x5e8c4b
mov dword [ebx + 0x20], 0
mov byte [ebx + 0x28], 0
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov dword [ebx + 0xac], eax
xor esi, esi
mov dword [ebx + 0xa8], ecx
mov ebx, dword [esp + 0x14]
mov byte [esp + edi*4 + 0xb3], 0xff
inc edi
cmp dword [esp + 0x20], edi
jne 0x5e8a5c
xor eax, eax
mov edx, dword [esp + 4]
cmp edx, 0xc
sete al
mov ecx, dword [esp + 0x94]
or eax, 0xfffffffc
mov edi, dword [esp + 0x20]
imul edi, eax
sub edi, edx
lea edx, [edi + ecx]
add edx, 0xfffffff2
mov edi, dword [esp + 8]
mov ecx, edi
call fcn.005efbcf
mov eax, dword [esp + 0x1c]
cmp eax, 1
je 0x5e9d6e
cmp eax, 8
je 0x5e9f6d
cmp eax, 4
jne 0x5ea2a4
mov ecx, dword [edi]
lea eax, [ecx + 1]
shr eax, 1
jmp 0x5e9f71
mov dword [0x7c0708], str.too_large
jmp 0x5e6df0
mov esi, str.bad_DNL_height
jmp 0x5ea2d2
mov esi, str.bad_SOS_len
jmp 0x5ea2d2
mov dword [0x7c0708], str.outofmem
jmp 0x5e6df0
mov edx, dword [esp + 0x94]
sub edx, dword [esp + 4]
add edx, 0xfffffff2
mov edi, dword [esp + 8]
mov ecx, edi
call fcn.005efbcf
cmp esi, 0x10
je 0x5e96e6
cmp esi, 0x20
je 0x5e96f8
mov dword [esp + 0x58], 0
cmp esi, 0x18
jne 0x5e977c
mov eax, dword [edi]
lea eax, [eax + eax*2]
neg eax
and eax, 3
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], 0
jmp 0x5e972f
mov ecx, edi
call fcn.005ddf28
test eax, eax
je 0x5e8dc3
mov ecx, edi
mov edx, dword [esp + 0x3c]
mov esi, dword [ebp + 0x10]
push esi
mov ebx, dword [ebp + 0xc]
push ebx
mov edi, dword [ebp + 8]
push edi
call fcn.005ebb3b
add esp, 0xc
test esi, esi
jne 0x5e8d7f
mov esi, dword [ebx]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
mov ecx, eax
push esi
push dword [edi]
call fcn.005ec541
add esp, 8
jmp 0x5e8787
mov dword [ebx + 0x47f0], 0
mov esi, str.bad_SOS_component_count
jmp 0x5ea2d2
push ebx
call fcn.00474d80
add esp, 4
mov dword [0x7c0708], 0x73720c
jmp 0x5ea2f3
mov ecx, edi
call fcn.005ec6b0
test eax, eax
je 0x5e9d5f
mov ecx, edi
mov edx, dword [esp + 0x3c]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005eca4a
jmp 0x5e8784
xor edx, edx
inc edx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
cmovne edx, ecx
mov dword [esp + 0x10], edx
xor edx, edx
xor ecx, ecx
inc ecx
mov dword [esp + 0x44], edx
test dl, dl
cmovne ecx, eax
cmp dword [esp + 0x10], 3
cmovge ecx, eax
cmp eax, 3
cmovne ecx, eax
pxor xmm0, xmm0
movdqa xmmword [esp + 0x90], xmm0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
mov dword [esp + 0x14], esi
mov edx, dword [esi]
test ecx, ecx
mov dword [esp + 0x18], ecx
jle 0x5e8f61
lea edi, [esp + 0xcc]
lea esi, [ebx + 0x46a0]
mov dword [esp + 4], ecx
add edx, 3
push edx
call fcn.00474d30
add esp, 4
mov dword [esi + 0x34], eax
test eax, eax
je 0x5e96c5
mov eax, dword [ebx + 0x4684]
cdq
idiv dword [esi]
mov ecx, esi
mov esi, eax
mov dword [edi - 0x10], eax
mov eax, dword [ebx + 0x4688]
cdq
idiv dword [ecx + 4]
mov dword [edi - 0xc], eax
mov dword [esp + 0x30], eax
sar eax, 1
mov dword [edi - 4], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 8], eax
add eax, esi
dec eax
xor edx, edx
div esi
mov dword [edi - 8], eax
mov dword [edi], 0
mov edx, ecx
mov eax, dword [ecx + 0x28]
mov dword [edi - 0x14], eax
mov dword [edi - 0x18], eax
cmp esi, 2
je 0x5e8f21
cmp esi, 1
mov esi, edx
jne 0x5e8f39
mov edx, dword [esp + 0x30]
cmp edx, 2
mov eax, 0x5efe90
mov ecx, 0x5efd80
cmove eax, ecx
cmp edx, 1
mov ecx, 0x5efd70
cmove eax, ecx
jmp 0x5e8f3e
mov eax, dword [esp + 0x30]
cmp eax, 1
je 0x5e8f58
cmp eax, 2
mov esi, edx
jne 0x5e8f39
mov eax, dword [ebx + 0x4814]
jmp 0x5e8f3e
mov eax, 0x5efe90
mov ecx, dword [esp + 4]
mov dword [edi - 0x1c], eax
add edi, 0x20
add esi, 0x48
dec ecx
mov edx, dword [esp + 8]
jne 0x5e8e8e
jmp 0x5e8f61
mov eax, 0x5efdc0
mov esi, edx
jmp 0x5e8f3e
mov ecx, dword [esp + 0x10]
push 1
mov eax, dword [esp + 0x18]
push dword [eax + 4]
call fcn.005efd32
add esp, 8
test eax, eax
je 0x5e96cb
mov esi, eax
mov eax, dword [ebx]
cmp dword [eax + 4], 0
je 0x5e968a
add ebx, 0x46bc
mov dword [esp + 0x50], ebx
mov ecx, eax
lea eax, [esi + 1]
mov dword [esp + 0x48], eax
lea eax, [esi + 2]
mov dword [esp + 0x4c], eax
lea eax, [esi + 3]
mov dword [esp + 0x40], eax
mov eax, ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x28], esi
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test edx, edx
jle 0x5e908d
xor ecx, ecx
lea ebx, [esp + 0xcc]
mov edi, dword [esp + 0x50]
mov dword [esp + 4], ecx
mov esi, dword [ebx - 4]
mov ecx, dword [ebx - 0xc]
mov dword [esp + 8], ecx
sar ecx, 1
xor eax, eax
xor edx, edx
cmp esi, ecx
setge al
setl dl
mov ecx, dword [ebx - 0x1c]
mov edx, dword [ebx + edx*4 - 0x18]
mov dword [esp + 0x30], edx
mov eax, dword [ebx + eax*4 - 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [ebx - 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [ebx - 8]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x20], eax
call dword [section..00cfg]
push dword [esp + 0x24]
push dword [esp + 0x20]
push dword [esp + 0x38]
push dword [esp + 0x20]
push dword [esp + 0x30]
call ecx
mov ecx, dword [esp + 0x18]
add esp, 0x14
mov dword [esp + ecx*4 + 0x90], eax
inc esi
mov dword [ebx - 4], esi
cmp esi, dword [esp + 8]
jl 0x5e907a
mov dword [ebx - 4], 0
mov eax, dword [ebx - 0x14]
mov ecx, dword [ebx]
mov dword [ebx - 0x18], eax
inc ecx
mov dword [ebx], ecx
cmp ecx, dword [edi]
mov ecx, dword [esp + 4]
jge 0x5e907a
add eax, dword [edi + 4]
mov dword [ebx - 0x14], eax
inc ecx
add edi, 0x48
add ebx, 0x20
mov edx, dword [esp + 0x18]
cmp edx, ecx
jne 0x5e8fe2
mov eax, dword [esp + 0x10]
cmp eax, 3
mov dword [esp + 0x10], eax
jl 0x5e91ae
mov edi, dword [esp + 0x34]
imul edi, eax
imul edi, dword [esp + 0x2c]
add edi, dword [esp + 0x28]
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
cmp ecx, 3
je 0x5e933c
cmp ecx, 4
jne 0x5e93ac
mov ecx, dword [ebx + 0x47e8]
cmp ecx, 2
je 0x5e950c
test ecx, ecx
jne 0x5e942c
cmp dword [eax], 0
je 0x5e965e
mov ecx, dword [esp + 0x9c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x2c]
imul edi, dword [esp + 0x38]
add edi, dword [esp + 0x40]
xor ebx, ebx
mov dword [esp + 4], esi
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + ebx]
movzx edx, byte [esi + ebx]
imul edx, ecx
mov esi, eax
mov eax, edi
mov edi, 0x80
add edi, edx
shr edi, 8
add edx, edi
add edx, 0x80
mov byte [eax - 3], dh
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + ebx]
imul edx, ecx
mov edi, 0x80
add edi, edx
shr edi, 8
add edx, edi
add edx, 0x80
mov edi, eax
mov eax, esi
mov esi, 0x80
mov byte [edi - 2], dh
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + ebx]
imul edx, ecx
lea ecx, [edx + esi]
mov esi, dword [esp + 4]
shr ecx, 8
add ecx, edx
add ecx, 0x80
mov byte [edi - 1], ch
mov byte [edi], 0xff
inc ebx
add edi, dword [esp + 0x10]
cmp ebx, dword [eax]
jb 0x5e9124
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0xc]
jmp 0x5e9503
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
cmp byte [esp + 0x44], 0
mov dword [esp + 4], eax
je 0x5e9234
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edi, dword [eax]
cmp dword [esp + 0x10], 1
jne 0x5e947b
test edi, edi
je 0x5e94d7
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x2c]
imul ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x28]
xor edi, edi
mov eax, dword [esp + 8]
movzx eax, byte [eax + edi]
lea ebx, [eax + eax*8]
lea ebx, [ebx + ebx*2]
add ebx, eax
add ebx, eax
movzx eax, byte [esi + edi]
imul eax, eax, 0x96
add ebx, eax
movzx eax, byte [edx + edi]
imul eax, eax, 0x4d
add ebx, eax
mov eax, dword [esp + 4]
mov byte [ecx + edi], bh
inc edi
cmp edi, dword [eax]
jb 0x5e91fc
jmp 0x5e94ca
cmp dword [eax + 8], 4
mov edi, dword [esp + 0x2c]
jne 0x5e93ef
mov ecx, dword [ebx + 0x47e8]
cmp ecx, 2
je 0x5e95f2
test ecx, ecx
jne 0x5e93ef
cmp dword [eax], 0
je 0x5e965e
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x14], eax
mov ecx, edi
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], eax
imul ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x48]
xor ebx, ebx
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 8]
movzx ecx, byte [eax + ebx]
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + ebx]
imul eax, ecx
mov edi, 0x80
lea edx, [eax + edi]
shr edx, 8
add edx, eax
add edx, 0x80
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ebx]
imul eax, ecx
lea esi, [eax + edi]
shr esi, 8
add esi, eax
add esi, 0x80
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + ebx]
imul eax, ecx
lea ecx, [eax + edi]
shr ecx, 8
add eax, ecx
add eax, 0x80
shr edx, 8
shr esi, 8
shr eax, 8
imul ecx, edx, 0x4d
imul edx, esi, 0x96
add edx, ecx
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
add ecx, eax
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x10]
add ecx, edx
mov edx, dword [esp + 0x2c]
mov byte [edx - 1], ch
mov ecx, dword [esp + 0x2c]
mov byte [ecx], 0xff
inc ebx
add ecx, edi
cmp ebx, dword [eax]
jb 0x5e929b
jmp 0x5e95e8
cmp byte [esp + 0x44], 0
je 0x5e942c
cmp dword [eax], 0
je 0x5e965e
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x30], ecx
mov edx, esi
mov esi, dword [esp + 0x2c]
imul esi, dword [esp + 0x38]
add esi, dword [esp + 0x40]
xor edi, edi
mov ecx, dword [esp + 0x10]
mov bl, byte [edx + edi]
mov byte [esi - 3], bl
mov ebx, dword [esp + 8]
mov bl, byte [ebx + edi]
mov byte [esi - 2], bl
mov ebx, dword [esp + 0x30]
mov bl, byte [ebx + edi]
mov byte [esi - 1], bl
mov byte [esi], 0xff
inc edi
add esi, ecx
cmp edi, dword [eax]
jb 0x5e937b
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0xc]
jmp 0x5e9656
cmp dword [eax], 0
je 0x5e965e
mov dword [esp + 4], esi
mov esi, dword [esp + 0x2c]
imul esi, dword [esp + 0x38]
add esi, dword [esp + 0x40]
xor ecx, ecx
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 4]
mov dl, byte [edx + ecx]
mov byte [esi - 1], dl
mov byte [esi - 2], dl
mov byte [esi - 3], dl
mov byte [esi], 0xff
inc ecx
add esi, edi
cmp ecx, dword [eax]
jb 0x5e93cc
mov esi, dword [esp + 0x28]
jmp 0x5e9670
mov ecx, dword [esp + 0x90]
mov edx, dword [eax]
cmp dword [esp + 0x10], 1
mov esi, dword [esp + 0x28]
jne 0x5e94dd
test edx, edx
je 0x5e9503
imul edi, dword [esp + 0x38]
add edi, esi
xor edx, edx
mov al, byte [ecx + edx]
mov byte [edi + edx], al
mov eax, dword [esp + 4]
inc edx
cmp edx, dword [eax]
jb 0x5e9418
jmp 0x5e966c
mov ecx, dword [ebx + 0x4810]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x98]
call dword [section..00cfg]
push dword [esp + 0x10]
push dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x18]
push dword [esp + 0x14]
push esi
push edi
call ecx
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
add esp, 0x18
mov eax, dword [ebx]
mov esi, dword [esp + 0x28]
jmp 0x5e9674
test edi, edi
je 0x5e94d7
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x2c]
imul ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x28]
xor edi, edi
mov eax, dword [esp + 8]
movzx eax, byte [eax + edi]
lea ebx, [eax + eax*8]
lea ebx, [ebx + ebx*2]
add ebx, eax
add ebx, eax
movzx eax, byte [esi + edi]
imul eax, eax, 0x96
add ebx, eax
movzx eax, byte [edx + edi]
imul eax, eax, 0x4d
add ebx, eax
mov eax, dword [esp + 4]
mov byte [ecx + edi*2], bh
mov byte [ecx + edi*2 + 1], 0xff
inc edi
cmp edi, dword [eax]
jb 0x5e9492
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0xc]
jmp 0x5e966c
mov esi, dword [esp + 0x28]
jmp 0x5e9503
test edx, edx
je 0x5e9503
imul edi, dword [esp + 0x38]
add edi, esi
xor edx, edx
mov al, byte [ecx + edx]
mov byte [edi + edx*2], al
mov eax, dword [esp + 4]
mov byte [edi + edx*2 + 1], 0xff
inc edx
cmp edx, dword [eax]
jb 0x5e94ea
jmp 0x5e966c
mov edx, dword [esp + 0x18]
jmp 0x5e9662
mov ecx, dword [ebx + 0x4810]
mov ebx, dword [eax]
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x30], eax
call dword [section..00cfg]
push dword [esp + 0x10]
push ebx
push dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
push dword [esp + 0x14]
push esi
push edi
call ecx
add esp, 0x18
mov eax, dword [ebx]
cmp dword [eax], 0
je 0x5e9668
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x2c]
imul ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x4c]
xor edx, edx
mov esi, dword [esp + 4]
movzx esi, byte [esi + edx]
movzx edi, byte [ecx - 2]
mov ebx, 0xff
xor edi, ebx
imul edi, esi
mov ebx, 0x80
add ebx, edi
shr ebx, 8
add ebx, edi
add ebx, 0x80
mov byte [ecx - 2], bh
movzx edi, byte [ecx - 1]
mov ebx, 0xff
xor edi, ebx
imul edi, esi
mov ebx, 0x80
add ebx, edi
shr ebx, 8
add ebx, edi
add ebx, 0x80
mov byte [ecx - 1], bh
movzx edi, byte [ecx]
mov ebx, 0xff
xor edi, ebx
imul edi, esi
mov esi, 0x80
add esi, edi
shr esi, 8
lea ebx, [esi + edi]
add ebx, 0x80
mov edi, dword [esp + 0x10]
mov byte [ecx], bh
inc edx
add ecx, edi
cmp edx, dword [eax]
jb 0x5e956d
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0xc]
jmp 0x5e9670
cmp dword [eax], 0
je 0x5e965e
mov eax, dword [esp + 0x90]
mov dword [esp + 8], eax
mov edx, dword [esp + 0x9c]
imul edi, dword [esp + 0x38]
add edi, dword [esp + 0x48]
xor esi, esi
movzx eax, byte [edx + esi]
mov ecx, edi
mov edi, dword [esp + 8]
movzx edi, byte [edi + esi]
xor edi, 0xff
imul edi, eax
lea eax, [edi + 0x80]
shr eax, 8
add eax, edi
add eax, 0x80
mov edi, ecx
mov byte [ecx - 1], ah
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x10]
mov byte [edi], 0xff
inc esi
add edi, ecx
cmp esi, dword [eax]
jb 0x5e9614
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov edi, ecx
jmp 0x5e9674
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
jmp 0x5e9674
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
inc ecx
add dword [esp + 0x38], edi
mov dword [esp + 0x34], ecx
cmp ecx, dword [eax + 4]
jb 0x5e8fc7
mov edx, dword [eax + 8]
mov ecx, ebx
call fcn.005efccf
mov eax, dword [ebx]
mov ecx, dword [eax]
mov edx, dword [esp + 0x3c]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov dword [edx], ecx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x5ea2ea
xor ecx, ecx
cmp dword [eax + 8], 3
setge cl
lea eax, [ecx + ecx]
inc eax
mov dword [edx], eax
jmp 0x5ea2ea
mov eax, dword [esp + 0x14]
jmp 0x5e96cd
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov ecx, ebx
call fcn.005efccf
mov dword [0x7c0708], 0x7587af
jmp 0x5ea2e8
mov eax, dword [edi]
add eax, eax
neg eax
and eax, 2
mov dword [esp + 0x58], eax
jmp 0x5e977c
mov eax, dword [esp + 0x28]
xor eax, 0xff
mov ecx, dword [esp + 0x34]
xor ecx, 0xff00
or ecx, eax
mov eax, dword [esp + 0x2c]
xor eax, 0xff0000
or eax, ecx
sete al
mov dword [esp + 0x58], 0
test byte [esp + 0x24], al
je 0x5e977c
mov al, 1
mov dword [esp + 0x54], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x60], 0
jmp 0x5e98f7
cmp dword [esp + 0x2c], 0
je 0x5e9d47
cmp dword [esp + 0x34], 0
je 0x5e9d47
cmp dword [esp + 0x28], 0
je 0x5e9d47
mov edi, dword [esp + 0x2c]
mov ecx, edi
call fcn.005f307c
mov esi, 0x55555555
mov ecx, edi
and ecx, esi
mov edx, edi
shr edx, 1
and edx, esi
add edx, ecx
mov edi, 0x33333333
mov ecx, edx
and ecx, edi
shr edx, 2
and edx, edi
add edx, ecx
mov ecx, edx
shr ecx, 4
add ecx, edx
mov edx, 0xf0f0f0f
and ecx, edx
mov edx, ecx
shr edx, 8
add edx, ecx
mov ecx, edx
shr ecx, 0x10
add ecx, edx
add eax, 0xfffffff9
mov dword [esp + 0x38], eax
mov eax, 0xff
and ecx, eax
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0x34]
mov ecx, ebx
call fcn.005f307c
mov ecx, ebx
and ecx, esi
shr ebx, 1
and ebx, esi
add ebx, ecx
mov ecx, ebx
and ecx, edi
shr ebx, 2
and ebx, edi
add ebx, ecx
mov ecx, ebx
shr ecx, 4
add ecx, ebx
mov edx, 0xf0f0f0f
and ecx, edx
mov edx, ecx
shr edx, 8
add edx, ecx
mov ecx, edx
shr ecx, 0x10
add ecx, edx
add eax, 0xfffffff9
mov dword [esp + 0x50], eax
mov eax, 0xff
and ecx, eax
mov dword [esp + 0x40], ecx
mov ebx, dword [esp + 0x28]
mov ecx, ebx
call fcn.005f307c
mov ecx, ebx
and ecx, esi
shr ebx, 1
and ebx, esi
add ebx, ecx
mov ecx, ebx
and ecx, edi
shr ebx, 2
and ebx, edi
add ebx, ecx
mov ecx, ebx
shr ecx, 4
add ecx, ebx
mov edx, 0xf0f0f0f
and ecx, edx
mov edx, ecx
shr edx, 8
add edx, ecx
mov ecx, edx
shr ecx, 0x10
add ecx, edx
add eax, 0xfffffff9
mov dword [esp + 0x48], eax
mov eax, 0xff
and ecx, eax
mov dword [esp + 0x4c], ecx
mov ebx, dword [esp + 0x10]
mov ecx, ebx
call fcn.005f307c
mov ecx, ebx
and ecx, esi
shr ebx, 1
and ebx, esi
add ebx, ecx
mov ecx, ebx
and ecx, edi
shr ebx, 2
and ebx, edi
mov edi, dword [esp + 8]
add ebx, ecx
mov ecx, ebx
shr ecx, 4
add ecx, ebx
add eax, 0xfffffff9
mov dword [esp + 0x60], eax
mov eax, 0xf0f0f0f
and ecx, eax
mov eax, ecx
shr eax, 8
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
mov eax, 0xff
and ecx, eax
mov dword [esp + 0x5c], ecx
mov ebx, dword [esp + 0x14]
mov al, 1
mov dword [esp + 0x64], eax
mov dword [esp + 0x54], 0
mov edx, dword [edi + 4]
test edx, edx
jle 0x5ea1b2
mov eax, dword [esp + 0x38]
neg eax
mov dword [esp + 0x8c], eax
mov eax, 8
sub eax, dword [esp + 0x44]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x50]
neg eax
mov dword [esp + 0x84], eax
mov eax, 8
sub eax, dword [esp + 0x40]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x48]
neg eax
mov dword [esp + 0x7c], eax
mov eax, 8
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x60]
neg eax
mov dword [esp + 0x74], eax
mov eax, 8
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x70], eax
lea eax, [edi + 0x28]
mov dword [esp + 0x24], eax
lea eax, [edi + 0x29]
mov dword [esp + 0x18], eax
mov dword [esp + 4], 0
xor ecx, ecx
mov eax, dword [edi]
cmp byte [esp + 0x64], 0
mov dword [esp + 0x6c], ecx
je 0x5e9afc
test eax, eax
jle 0x5e9d27
xor esi, esi
mov dword [esp + 0x20], esi
mov ecx, edi
call fcn.005f2b9f
mov esi, eax
cmp dword [esp + 0x1c], 0x10
je 0x5e99bd
mov ecx, edi
call fcn.005f2b9f
shl eax, 0x10
add esi, eax
mov eax, esi
and eax, dword [esp + 0x2c]
mov edx, eax
mov ecx, dword [esp + 0x8c]
shl edx, cl
mov ecx, dword [esp + 0x38]
shr eax, cl
test ecx, ecx
cmovs eax, edx
mov ecx, dword [esp + 0x88]
shr eax, cl
mov ecx, dword [esp + 0x44]
imul eax, dword [ecx*4 + 0x758a6c]
mov cl, byte [ecx*4 + 0x758a90]
sar eax, cl
mov edx, esi
and edx, dword [esp + 0x34]
mov edi, edx
mov ecx, dword [esp + 0x84]
shl edi, cl
mov ecx, dword [esp + 0x50]
shr edx, cl
test ecx, ecx
cmovs edx, edi
mov ecx, dword [esp + 0x80]
shr edx, cl
mov ecx, dword [esp + 0x40]
imul edx, dword [ecx*4 + 0x758a6c]
mov cl, byte [ecx*4 + 0x758a90]
sar edx, cl
mov ebx, esi
and ebx, dword [esp + 0x28]
mov edi, ebx
mov ecx, dword [esp + 0x7c]
shl edi, cl
mov ecx, dword [esp + 0x48]
shr ebx, cl
test ecx, ecx
cmovs ebx, edi
mov ecx, dword [esp + 0x78]
shr ebx, cl
mov ecx, dword [esp + 0x4c]
imul ebx, dword [ecx*4 + 0x758a6c]
mov cl, byte [ecx*4 + 0x758a90]
sar ebx, cl
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 4]
mov byte [ecx + edi], al
mov byte [ecx + edi + 1], dl
mov byte [ecx + edi + 2], bl
mov ebx, ecx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5e9aba
and esi, eax
mov eax, esi
mov ecx, dword [esp + 0x74]
shl eax, cl
mov ecx, dword [esp + 0x60]
shr esi, cl
test ecx, ecx
cmovs esi, eax
mov ecx, dword [esp + 0x70]
shr esi, cl
mov eax, dword [esp + 0x5c]
imul esi, dword [eax*4 + 0x758a6c]
mov cl, byte [eax*4 + 0x758a90]
sar esi, cl
mov eax, dword [esp + 0x30]
mov edx, esi
jmp 0x5e9ac3
mov edx, 0xff
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
cmp dword [esp + 0xc], 4
mov edi, dword [esp + 8]
jne 0x5e9ae3
mov ecx, dword [esp + 4]
mov byte [ebx + ecx + 3], dl
add ecx, 4
mov dword [esp + 4], ecx
jmp 0x5e9ae8
add dword [esp + 4], 3
or eax, edx
mov dword [esp + 0x30], eax
inc esi
cmp esi, dword [edi]
jl 0x5e999d
jmp 0x5e9d27
test eax, eax
jle 0x5e9d27
mov ecx, dword [edi + 0xa8]
mov eax, dword [edi + 0xac]
xor edx, edx
cmp ecx, eax
mov dword [esp + 0x20], edx
jae 0x5e9b29
lea esi, [ecx + 1]
mov dword [edi + 0xa8], esi
mov dl, byte [ecx]
mov ecx, esi
jmp 0x5e9b86
cmp dword [edi + 0x20], 0
je 0x5e9b5f
mov esi, dword [edi + 0x24]
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push esi
push dword [esp + 0x28]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e9b63
add eax, edi
add eax, 0x28
mov dl, byte [edi + 0x28]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x5e9b7a
xor edx, edx
jmp 0x5e9b86
mov dword [edi + 0x20], 0
mov byte [edi + 0x28], 0
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov ebx, dword [esp + 0x14]
mov dword [edi + 0xac], eax
mov dword [edi + 0xa8], ecx
mov esi, dword [esp + 4]
mov byte [esi + ebx + 2], dl
cmp ecx, eax
jae 0x5e9ba1
lea esi, [ecx + 1]
mov dword [edi + 0xa8], esi
mov dl, byte [ecx]
mov ecx, esi
jmp 0x5e9bfe
cmp dword [edi + 0x20], 0
je 0x5e9bd7
mov esi, dword [edi + 0x24]
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push esi
push dword [esp + 0x28]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e9bdb
add eax, edi
add eax, 0x28
mov dl, byte [edi + 0x28]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x5e9bf2
xor edx, edx
jmp 0x5e9bfe
mov dword [edi + 0x20], 0
mov byte [edi + 0x28], 0
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov ebx, dword [esp + 0x14]
mov dword [edi + 0xac], eax
mov dword [edi + 0xa8], ecx
mov esi, dword [esp + 4]
mov byte [esi + ebx + 1], dl
cmp ecx, eax
jae 0x5e9c19
lea esi, [ecx + 1]
mov dword [edi + 0xa8], esi
mov dl, byte [ecx]
mov ecx, esi
jmp 0x5e9c76
cmp dword [edi + 0x20], 0
je 0x5e9c4f
mov esi, dword [edi + 0x24]
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push esi
push dword [esp + 0x28]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e9c53
add eax, edi
add eax, 0x28
mov dl, byte [edi + 0x28]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x5e9c6a
xor edx, edx
jmp 0x5e9c76
mov dword [edi + 0x20], 0
mov byte [edi + 0x28], 0
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov ebx, dword [esp + 0x14]
mov dword [edi + 0xac], eax
mov dword [edi + 0xa8], ecx
mov esi, dword [esp + 4]
mov byte [ebx + esi], dl
mov dl, 0xff
cmp byte [esp + 0x54], 0
je 0x5e9cf6
cmp ecx, eax
jae 0x5e9c99
lea esi, [ecx + 1]
mov dword [edi + 0xa8], esi
mov dl, byte [ecx]
mov ecx, esi
jmp 0x5e9cf6
cmp dword [edi + 0x20], 0
je 0x5e9ccf
mov esi, dword [edi + 0x24]
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push esi
push dword [esp + 0x28]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e9cd3
add eax, edi
add eax, 0x28
mov dl, byte [edi + 0x28]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x5e9cea
xor edx, edx
jmp 0x5e9cf6
mov dword [edi + 0x20], 0
mov byte [edi + 0x28], 0
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov ebx, dword [esp + 0x14]
mov dword [edi + 0xac], eax
mov dword [edi + 0xa8], ecx
cmp dword [esp + 0xc], 4
jne 0x5e9d0e
mov esi, dword [esp + 4]
mov byte [ebx + esi + 3], dl
add esi, 4
mov dword [esp + 4], esi
jmp 0x5e9d13
add dword [esp + 4], 3
movzx edx, dl
or dword [esp + 0x30], edx
mov edx, dword [esp + 0x20]
inc edx
cmp edx, dword [edi]
jl 0x5e9b12
mov ecx, edi
mov edx, dword [esp + 0x58]
call fcn.005efbcf
mov ecx, dword [esp + 0x6c]
inc ecx
mov edx, dword [edi + 4]
cmp ecx, edx
jl 0x5e9982
jmp 0x5ea1b2
push ebx
call fcn.00474d80
add esp, 4
mov dword [0x7c0708], 0x758a3e
jmp 0x5e6df0
mov dword [0x7c0708], str.unknown_image_type
jmp 0x5e6df0
mov edx, dword [edi + 4]
test edx, edx
jle 0x5ea1b2
mov eax, dword [edi]
add eax, 7
shr eax, 3
neg eax
and eax, 3
mov dword [esp + 0x34], eax
mov esi, edi
xor edi, edi
xor eax, eax
mov edx, dword [esi + 0xa8]
mov ecx, dword [esi + 0xac]
cmp edx, ecx
mov dword [esp + 0x2c], eax
jae 0x5e9db5
mov dword [esp + 0x10], ecx
lea ecx, [edx + 1]
mov dword [esi + 0xa8], ecx
mov al, byte [edx]
jmp 0x5e9e24
cmp dword [esi + 0x20], 0
je 0x5e9df3
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
mov ecx, dword [esi + 0x10]
mov ebx, dword [esi + 0x1c]
call dword [section..00cfg]
push dword [esp + 4]
push dword [esp + 0x28]
push ebx
call ecx
add esp, 0xc
test eax, eax
je 0x5e9dfd
lea edx, [esi + eax]
add edx, 0x28
mov al, byte [esi + 0x28]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x5e9e14
mov dword [esp + 0x10], ecx
xor eax, eax
mov ecx, edx
jmp 0x5e9e24
mov dword [esi + 0x20], 0
mov byte [esi + 0x28], 0
xor eax, eax
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esi + 0xac], edx
mov dword [esi + 0xa8], ecx
mov edx, dword [esi]
mov dword [esp + 4], edx
test edx, edx
jle 0x5e9f47
mov dword [esp + 0x1c], ecx
movzx eax, al
mov dword [esp + 0x20], eax
xor esi, esi
mov ecx, 7
mov eax, dword [esp + 0x20]
shr eax, cl
and eax, 1
mov dl, byte [esp + eax*4 + 0xb0]
mov byte [ebx + edi], dl
mov dl, byte [esp + eax*4 + 0xb1]
mov byte [ebx + edi + 1], dl
mov al, byte [esp + eax*4 + 0xb2]
mov byte [ebx + edi + 2], al
cmp dword [esp + 0xc], 4
jne 0x5e9e7e
mov byte [ebx + edi + 3], 0xff
add edi, 4
jmp 0x5e9e81
add edi, 3
inc esi
cmp esi, dword [esp + 4]
je 0x5e9f47
test ecx, ecx
jle 0x5e9e96
dec ecx
jmp 0x5e9f3d
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x10]
jae 0x5e9eb7
mov edx, eax
lea ecx, [eax + 1]
mov eax, dword [esp + 8]
mov dword [eax + 0xa8], ecx
mov al, byte [edx]
mov dword [esp + 0x1c], ecx
jmp 0x5e9f31
mov ebx, dword [esp + 8]
cmp dword [ebx + 0x20], 0
je 0x5e9efc
mov eax, dword [ebx + 0x24]
mov dword [esp + 4], eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x20], eax
call dword [section..00cfg]
push dword [esp + 4]
push dword [esp + 0x28]
push dword [esp + 0x28]
call ecx
add esp, 0xc
test eax, eax
je 0x5e9f00
lea edx, [ebx + eax]
add edx, 0x28
mov al, byte [ebx + 0x28]
mov ecx, dword [esp + 0x18]
jmp 0x5e9f13
xor eax, eax
jmp 0x5e9f2d
mov dword [ebx + 0x20], 0
mov byte [ebx + 0x28], 0
xor eax, eax
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov dword [esp + 0x10], edx
mov dword [ebx + 0xac], edx
mov dword [ebx + 0xa8], ecx
mov edx, dword [ebx]
mov dword [esp + 4], edx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x14]
movzx eax, al
mov dword [esp + 0x20], eax
mov ecx, 7
cmp esi, dword [esp + 4]
jl 0x5e9e44
mov esi, dword [esp + 8]
mov ecx, esi
mov edx, dword [esp + 0x34]
call fcn.005efbcf
mov eax, dword [esp + 0x2c]
inc eax
mov edx, dword [esi + 4]
cmp eax, edx
jl 0x5e9d90
mov edi, esi
jmp 0x5ea1b2
mov ecx, dword [edi]
mov eax, ecx
mov edx, dword [edi + 4]
test edx, edx
jle 0x5ea1b2
neg eax
and eax, 3
mov dword [esp + 0x2c], eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x10], eax
test ecx, ecx
jle 0x5ea18a
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0xa8]
mov esi, dword [eax + 0xac]
xor ebx, ebx
mov dword [esp + 0x20], esi
cmp ecx, esi
jae 0x5e9fc4
lea esi, [ecx + 1]
mov eax, dword [esp + 8]
mov dword [eax + 0xa8], esi
mov dl, byte [ecx]
mov dword [esp + 4], esi
jmp 0x5ea038
mov esi, dword [esp + 8]
cmp dword [esi + 0x20], 0
je 0x5ea009
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x20], eax
call dword [section..00cfg]
push dword [esp + 4]
push dword [esp + 0x28]
push dword [esp + 0x28]
call ecx
add esp, 0xc
test eax, eax
je 0x5ea011
lea ecx, [esi + eax]
add ecx, 0x28
mov dl, byte [esi + 0x28]
mov eax, dword [esp + 0x18]
jmp 0x5ea024
mov dword [esp + 4], ecx
xor edx, edx
jmp 0x5ea038
mov dword [esi + 0x20], 0
mov byte [esi + 0x28], 0
xor edx, edx
mov eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], eax
mov dword [esp + 4], eax
movzx edx, dl
mov eax, edx
and eax, 0xf
mov esi, edx
shr esi, 4
cmp dword [esp + 0x1c], 4
cmovne esi, edx
mov dl, byte [esp + esi*4 + 0xb0]
mov ecx, dword [esp + 0x14]
mov byte [ecx + edi], dl
mov dl, byte [esp + esi*4 + 0xb1]
mov byte [ecx + edi + 1], dl
mov dl, byte [esp + esi*4 + 0xb2]
mov byte [ecx + edi + 2], dl
mov edx, 0
cmovne eax, edx
cmp dword [esp + 0xc], 4
jne 0x5ea08a
mov byte [ecx + edi + 3], 0xff
add edi, 4
jmp 0x5ea08d
add edi, 3
lea edx, [ebx + 1]
mov esi, dword [esp + 8]
cmp edx, dword [esi]
je 0x5ea18a
cmp dword [esp + 0x1c], 8
jne 0x5ea0c4
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 4]
cmp ecx, esi
jae 0x5ea0ca
lea eax, [ecx + 1]
mov edx, dword [esp + 8]
mov dword [edx + 0xa8], eax
mov dl, byte [ecx]
mov dword [esp + 4], eax
jmp 0x5ea13c
mov esi, dword [esp + 0x20]
jmp 0x5ea13f
mov esi, dword [esp + 8]
cmp dword [esi + 0x20], 0
je 0x5ea10f
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x20], eax
call dword [section..00cfg]
push dword [esp + 4]
push dword [esp + 0x28]
push dword [esp + 0x28]
call ecx
add esp, 0xc
test eax, eax
je 0x5ea117
lea ecx, [esi + eax]
add ecx, 0x28
mov dl, byte [esi + 0x28]
mov eax, dword [esp + 0x18]
jmp 0x5ea12a
xor edx, edx
mov esi, dword [esp + 0x20]
jmp 0x5ea13c
mov dword [esi + 0x20], 0
mov byte [esi + 0x28], 0
xor edx, edx
mov eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], eax
mov dword [esp + 4], eax
mov esi, ecx
movzx eax, dl
mov dl, byte [esp + eax*4 + 0xb0]
mov ecx, dword [esp + 0x14]
mov byte [ecx + edi], dl
mov dl, byte [esp + eax*4 + 0xb1]
mov byte [ecx + edi + 1], dl
mov al, byte [esp + eax*4 + 0xb2]
mov byte [ecx + edi + 2], al
cmp dword [esp + 0xc], 4
jne 0x5ea174
mov byte [ecx + edi + 3], 0xff
add edi, 4
jmp 0x5ea177
add edi, 3
mov ecx, dword [esp + 4]
add ebx, 2
mov eax, dword [esp + 8]
cmp ebx, dword [eax]
jl 0x5e9fa7
mov esi, dword [esp + 8]
mov ecx, esi
mov edx, dword [esp + 0x2c]
call fcn.005efbcf
mov eax, dword [esp + 0x10]
inc eax
mov edx, dword [esi + 4]
cmp eax, edx
jge 0x5ea1ac
mov ecx, dword [esi]
jmp 0x5e9f89
mov edi, esi
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
cmp dword [esp + 0xc], 4
jne 0x5ea1e3
cmp dword [esp + 0x30], 0
jne 0x5ea1e3
mov ecx, dword [edi]
imul ecx, dword [esp + 0x20]
shl ecx, 2
mov edx, ecx
dec edx
js 0x5ea1e3
add ecx, 3
mov byte [ebx + ecx - 4], 0xff
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x5ea1d6
cmp dword [esp + 0x68], 0
jle 0x5ea244
cmp dword [esp + 0x20], 2
jl 0x5ea244
mov ecx, dword [esp + 0x20]
mov eax, ecx
shr eax, 1
mov dword [esp + 4], eax
mov eax, dword [esp + 8]
mov edx, dword [eax]
imul edx, dword [esp + 0xc]
dec ecx
imul ecx, edx
mov eax, dword [esp + 0x14]
mov esi, eax
add esi, ecx
mov ecx, edx
neg ecx
mov dword [esp + 0x30], ecx
xor ebx, ebx
mov ecx, eax
test edx, edx
jle 0x5ea237
xor edi, edi
mov al, byte [ecx + edi]
mov ah, byte [esi + edi]
mov byte [ecx + edi], ah
mov byte [esi + edi], al
inc edi
cmp edx, edi
jne 0x5ea226
inc ebx
add esi, dword [esp + 0x30]
add ecx, edx
cmp ebx, dword [esp + 4]
jne 0x5ea220
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x5ea277
mov edx, dword [esp + 0xc]
cmp edx, esi
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x14]
je 0x5ea27f
mov ecx, eax
push dword [esp + 0x20]
push dword [edi]
push esi
call fcn.005f17d6
add esp, 0xc
test eax, eax
mov esi, 0
jne 0x5ea27f
jmp 0x5ea2f3
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov edx, dword [edi]
mov ecx, dword [esp + 0x3c]
mov dword [ecx], edx
mov edx, dword [edi + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx], edx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x5e8787
mov edx, dword [edi + 8]
mov dword [ecx], edx
jmp 0x5e8787
push ebx
call fcn.00474d80
add esp, 4
mov dword [0x7c0708], 0x758a36
jmp 0x5ea2f3
add eax, 0xfffffff0
mov dword [ebx + 0x47c0], eax
jmp 0x5ea2cd
add edi, 0xfffffff0
mov dword [ecx + 0x47c0], edi
mov esi, str.bad_huffman_code
mov dword [0x7c0708], esi
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov ecx, ebx
call fcn.005efccf
xor esi, esi
push ebx
call fcn.00474d80
add esp, 4
mov ecx, dword [esp + 0x8908]
xor ecx, ebp
call fcn.006c9121
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret