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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov ebx, dword [esp + 0x100]
mov eax, dword [ebx + 4]
test eax, eax
je 0x64678120
lea ebp, [eax - 1]
mov dword [ebx + 4], ebp
mov edx, dword [ebx]
mov cl, byte [edx]
mov byte [esp + 0x40], cl
lea edi, [edx + 1]
mov dword [ebx], edi
test cl, cl
jns 0x64678130
test ebp, ebp
je 0x64678120
lea ebp, [eax - 2]
mov dword [ebx + 4], ebp
movzx esi, byte [edx + 1]
lea edi, [edx + 2]
mov dword [ebx], edi
mov ecx, esi
movzx esi, cl
mov dword [esp + 0x5c], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], 0
test byte [esp + 0x40], 0x40
je 0x6467934f
test ebp, ebp
je 0x64678120
lea ebp, [eax - 3]
mov dword [ebx + 4], ebp
movzx edi, byte [edx + 2]
lea esi, [edx + 3]
mov dword [ebx], esi
mov ecx, edi
movzx esi, cl
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], 0
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
shld edi, esi, 8
shl esi, 8
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
mov esi, edi
mov edi, dword [esp + 0x5c]
or edi, dword [esp + 0x30]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
test byte [esp + 0x40], 0x20
je 0x6467935e
test ebp, ebp
je 0x64678120
lea esi, [eax - 4]
mov dword [ebx + 4], esi
movzx edi, byte [edx + 3]
lea ebp, [edx + 4]
mov dword [ebx], ebp
and edi, 0xff
xor ebp, ebp
shld ebp, edi, 0x10
shl edi, 0x10
mov ecx, dword [esp + 0x38]
or ecx, edi
mov edi, dword [esp + 0x3c]
or edi, ebp
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edi
test byte [esp + 0x40], 0x10
je 0x646798c9
test esi, esi
je 0x64678120
lea esi, [eax - 5]
mov dword [ebx + 4], esi
movzx ebp, byte [edx + 4]
add edx, 5
mov dword [ebx], edx
and ebp, 0xff
mov edi, ebp
xor ebp, ebp
shld ebp, edi, 0x18
shl edi, 0x18
mov edx, ecx
or edx, edi
or ebp, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ebp
test byte [esp + 0x40], 8
je 0x64679930
test esi, esi
je 0x64678120
lea edi, [eax - 6]
mov dword [ebx + 4], edi
mov ebp, dword [ebx]
movzx esi, byte [ebp]
lea edx, [ebp + 1]
mov dword [ebx], edx
mov ecx, esi
movzx edx, cl
or edx, dword [esp + 0x3c]
mov dword [esp + 0x3c], edx
test byte [esp + 0x40], 4
je 0x6467993f
test edi, edi
je 0x64678120
lea edi, [eax - 7]
mov dword [ebx + 4], edi
movzx esi, byte [ebp + 1]
lea edx, [ebp + 2]
mov dword [ebx], edx
mov ecx, esi
movzx edx, cl
shl edx, 8
or edx, dword [esp + 0x3c]
mov dword [esp + 0x3c], edx
test byte [esp + 0x40], 2
je 0x646799ad
test edi, edi
je 0x64678120
lea edi, [eax - 8]
mov dword [ebx + 4], edi
movzx esi, byte [ebp + 2]
lea edx, [ebp + 3]
mov dword [ebx], edx
mov ecx, esi
movzx edx, cl
shl edx, 0x10
or edx, dword [esp + 0x3c]
mov dword [esp + 0x3c], edx
test byte [esp + 0x40], 1
je 0x6467999e
test edi, edi
je 0x64678120
sub eax, 9
mov dword [ebx + 4], eax
mov al, byte [ebp + 3]
add ebp, 4
mov dword [ebx], ebp
shl eax, 0x18
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
or edi, eax
cmp edi, 0
jbe 0x6467817c
nop
mov eax, 0x80004001
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 4]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x64678120
dec eax
mov dword [ebp + 4], eax
mov ecx, dword [ebp]
mov dl, byte [ecx]
mov byte [esp + 0x10], dl
lea edx, [ecx + 1]
mov dword [ebp], edx
cmp byte [esp + 0x10], 0
jns 0x64679409
test eax, eax
je 0x64678120
mov edi, dword [esp + 0x2c]
sub edi, 2
mov dword [ebp + 4], edi
movzx eax, byte [ecx + 1]
lea edx, [ecx + 2]
mov dword [ebp], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
xor edx, edx
test byte [esp + 0x10], 0x40
je 0x646796b4
test edi, edi
je 0x64678120
mov edi, dword [esp + 0x2c]
sub edi, 3
mov dword [ebp + 4], edi
movzx eax, byte [ecx + 2]
lea edx, [ecx + 3]
mov dword [ebp], edx
mov ebx, eax
xor esi, esi
shld esi, ebx, 8
shl ebx, 8
mov eax, dword [esp + 0x40]
or eax, ebx
mov edx, esi
test byte [esp + 0x10], 0x20
je 0x6467981b
test edi, edi
je 0x64678120
mov edi, dword [esp + 0x2c]
sub edi, 4
mov dword [ebp + 4], edi
movzx esi, byte [ecx + 3]
lea ebx, [ecx + 4]
mov dword [ebp], ebx
and esi, 0xff
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], 0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
shld esi, ebx, 0x10
shl ebx, 0x10
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x30]
or esi, eax
mov ebx, dword [esp + 0x34]
or ebx, edx
mov eax, esi
mov edx, ebx
test byte [esp + 0x10], 0x10
je 0x646797da
test edi, edi
je 0x64678120
mov edi, dword [esp + 0x2c]
sub edi, 5
mov dword [ebp + 4], edi
movzx esi, byte [ecx + 4]
lea ebx, [ecx + 5]
mov dword [ebp], ebx
and esi, 0xff
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], 0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
shld esi, ebx, 0x18
shl ebx, 0x18
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x30]
or esi, eax
mov ebx, dword [esp + 0x34]
or ebx, edx
mov eax, esi
mov edx, ebx
test byte [esp + 0x10], 8
je 0x646797ae
test edi, edi
je 0x64678120
mov edi, dword [esp + 0x2c]
sub edi, 6
mov dword [ebp + 4], edi
movzx esi, byte [ecx + 5]
lea ebx, [ecx + 6]
mov dword [ebp], ebx
and esi, 0xff
or esi, edx
mov edx, esi
test byte [esp + 0x10], 4
je 0x6467977f
test edi, edi
je 0x64678120
mov edi, dword [esp + 0x2c]
sub edi, 7
mov dword [ebp + 4], edi
movzx esi, byte [ecx + 6]
lea ebx, [ecx + 7]
mov dword [ebp], ebx
and esi, 0xff
shl esi, 8
or esi, edx
mov edx, esi
test byte [esp + 0x10], 2
je 0x64679901
test edi, edi
je 0x64678120
mov edi, dword [esp + 0x2c]
sub edi, 8
mov dword [ebp + 4], edi
movzx esi, byte [ecx + 7]
lea ebx, [ecx + 8]
mov dword [ebp], ebx
and esi, 0xff
shl esi, 0x10
or esi, edx
mov edx, esi
test byte [esp + 0x10], 1
je 0x646798d8
test edi, edi
je 0x64678120
mov ebx, dword [esp + 0x2c]
sub ebx, 9
mov dword [ebp + 4], ebx
mov bl, byte [ecx + 8]
add ecx, 9
mov dword [ebp], ecx
shl ebx, 0x18
mov dword [esp + 0xb0], eax
or ebx, esi
mov dword [esp + 0xb4], ebx
mov ebx, eax
mov edi, dword [esp + 0x108]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x5c]
add eax, 0x10
mov dword [esp], eax
call sym.allegro_5.0.10_monolith_mt.dll_SzByteBufferCreate
test eax, eax
je 0x646793ff
mov edi, dword [esp + 0x5c]
mov ecx, dword [edi + 0x14]
test ebx, ebx
je 0x646783b8
mov edx, dword [ebp + 4]
test edx, edx
je 0x64678120
lea eax, [ecx + 1]
add ebx, ecx
mov esi, ebx
dec edx
mov dword [ebp + 4], edx
mov edx, dword [ebp]
mov bl, byte [edx]
mov byte [ecx], bl
inc edx
mov dword [ebp], edx
cmp eax, esi
je 0x646783b8
mov ecx, eax
mov edx, dword [ebp + 4]
inc eax
test edx, edx
jne 0x646780fc
lea esi, [esi]
mov eax, 6
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, pe_nt_image_headers32
xor edx, edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
dec eax
movzx ecx, byte [esp + 0x40]
and eax, ecx
mov esi, eax
mov edi, eax
sar edi, 0x1f
lea ecx, [edx*8]
shld edi, esi, cl
shl esi, cl
test cl, 0x20
je 0x6467816b
mov edi, esi
xor esi, esi
add esi, dword [esp + 0x38]
adc edi, dword [esp + 0x3c]
cmp edi, 0
ja 0x64677e88
cmp esi, 0x3ffffff
ja 0x64677e88
mov edx, dword [esp + 0x104]
mov dword [edx], esi
test esi, esi
jne 0x64678248
mov dword [edx + 4], 0
mov dword [edx + 8], 0xffffffff
mov eax, 0xfffffff8
mov dword [esp + 0x70], 0
mov edi, 0xffffffff
mov dword [esp], eax
mov ecx, dword [esp + 0x108]
call ecx
mov esi, dword [esp + 0x104]
mov dword [esi + 0xc], eax
test eax, eax
je 0x646793ff
mov ebp, esi
xor esi, esi
mov dword [esp + 0x38], edi
jmp 0x646781e7
mov eax, dword [ebp + 0xc]
lea edi, [eax + esi*8]
mov dword [esp + 4], edi
mov dword [esp], ebx
call sym.allegro_5.0.10_monolith_mt.dll_SzReadNumber32
test eax, eax
jne 0x64678125
lea edx, [edi + 4]
mov dword [esp + 4], edx
mov dword [esp], ebx
call sym.allegro_5.0.10_monolith_mt.dll_SzReadNumber32
test eax, eax
jne 0x64678125
inc esi
cmp esi, dword [esp + 0x38]
jb 0x646781e4
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x70]
sub esi, edi
mov edi, dword [esp + 0x104]
mov dword [edi + 0x10], esi
test esi, esi
jne 0x6467985c
mov dword [edi + 0x14], 0
xor eax, eax
jmp 0x64678125
lea eax, [esi + esi*2]
shl eax, 3
mov dword [esp], eax
mov ecx, dword [esp + 0x108]
call ecx
mov edx, dword [esp + 0x104]
mov dword [edx + 4], eax
test eax, eax
je 0x646793ff
mov edi, edx
lea edx, [esi - 1]
mov dword [esp + 0x8c], edx
xor ebp, ebp
mov esi, edx
jmp 0x64678284
mov eax, dword [edi + 4]
inc ebp
lea edx, [ebp + ebp*2]
lea eax, [eax + edx*8]
mov dword [esp], eax
call sym.allegro_5.0.10_monolith_mt.dll_SzCoderInfoInit
cmp ebp, esi
jne 0x64678280
mov esi, dword [esp + 0x104]
mov esi, dword [esi + 4]
mov dword [esp + 0x5c], esi
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x64678120
mov dword [esp + 0x78], 0x18
mov dword [esp + 0x74], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], 0
lea edi, [esp + 0xd0]
mov dword [esp + 0x58], edi
mov ebp, ebx
lea ebx, [ecx - 1]
mov dword [ebp + 4], ebx
mov eax, dword [ebp]
mov dl, byte [eax]
mov byte [esp + 0x38], dl
inc eax
mov dword [ebp], eax
and edx, 0xf
mov esi, edx
je 0x6467927d
test ebx, ebx
je 0x64678120
lea eax, [esp + 0xd2]
not edx
lea edi, [edx + ecx]
lea ecx, [esp + 0xd1]
nop
dec ebx
mov dword [ebp + 4], ebx
mov edx, dword [ebp]
mov dl, byte [edx]
mov byte [ecx], dl
mov edx, dword [ebp]
inc edx
mov dword [ebp], edx
cmp ebx, edi
je 0x6467833c
mov ecx, eax
inc eax
test ebx, ebx
je 0x64678120
jmp 0x64678318
cmp esi, 8
ja 0x64677e88
lea eax, [esp + esi + 0xd0]
xor ecx, ecx
xor esi, esi
xor edi, edi
mov dword [esp + 0x30], ebp
mov ebp, ebx
mov ebx, eax
nop
movzx eax, byte [ebx]
xor edx, edx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x6467836f
mov edx, eax
xor eax, eax
or eax, esi
or edx, edi
mov esi, eax
mov edi, edx
dec ebx
add ecx, 8
cmp ebx, dword [esp + 0x58]
jne 0x6467835c
mov ebx, ebp
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
mov dword [edx + 8], eax
mov dword [edx + 0xc], edi
test byte [esp + 0x38], 0x10
jne 0x64678a20
mov edi, dword [esp + 0x5c]
mov dword [edi], 1
mov dword [edi + 4], 1
test byte [esp + 0x38], 0x20
jne 0x64677e98
cmp byte [esp + 0x38], 0
jns 0x646785f4
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x64678120
dec ecx
mov dword [ebp + 4], ecx
mov ebx, dword [ebp]
mov dl, byte [ebx]
mov byte [esp + 0x38], dl
inc ebx
mov dword [ebp], ebx
mov al, dl
and eax, 0xf
cmp eax, ecx
ja 0x64678120
sub ecx, eax
mov dword [ebp + 4], ecx
add ebx, eax
mov dword [ebp], ebx
and edx, 0x10
jne 0x64678648
test byte [esp + 0x38], 0x20
je 0x646783b8
test ecx, ecx
je 0x64678120
lea ebx, [ecx - 1]
mov dword [ebp + 4], ebx
mov esi, dword [ebp]
mov al, byte [esi]
mov byte [esp + 0x40], al
lea eax, [esi + 1]
mov dword [ebp], eax
cmp byte [esp + 0x40], 0
jns 0x64678e7d
test ebx, ebx
je 0x64678120
lea ebx, [ecx - 2]
mov dword [ebp + 4], ebx
mov al, byte [esi + 1]
lea edx, [esi + 2]
mov dword [ebp], edx
movzx edi, al
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], 0
test byte [esp + 0x40], 0x40
je 0x64678f64
test ebx, ebx
je 0x64678120
lea ebx, [ecx - 3]
mov dword [ebp + 4], ebx
movzx eax, byte [esi + 2]
lea edx, [esi + 3]
mov dword [ebp], edx
xor edx, edx
shld edx, eax, 8
shl eax, 8
or edi, eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edx
test byte [esp + 0x40], 0x20
je 0x6467906e
test ebx, ebx
je 0x64678120
lea ebx, [ecx - 4]
mov dword [ebp + 4], ebx
movzx eax, byte [esi + 3]
lea edx, [esi + 4]
mov dword [ebp], edx
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov edi, dword [esp + 0x30]
or edi, eax
mov eax, dword [esp + 0x34]
or eax, edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 0x10
je 0x646790f0
test ebx, ebx
je 0x64678120
lea ebx, [ecx - 5]
mov dword [ebp + 4], ebx
movzx eax, byte [esi + 4]
lea edx, [esi + 5]
mov dword [ebp], edx
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov edi, dword [esp + 0x30]
or edi, eax
mov eax, dword [esp + 0x34]
or eax, edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 8
je 0x646791d7
test ebx, ebx
je 0x64678120
lea ebx, [ecx - 6]
mov dword [ebp + 4], ebx
movzx eax, byte [esi + 5]
lea edx, [esi + 6]
mov dword [ebp], edx
or eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 4
je 0x64679239
test ebx, ebx
je 0x64678120
lea ebx, [ecx - 7]
mov dword [ebp + 4], ebx
movzx eax, byte [esi + 6]
lea edx, [esi + 7]
mov dword [ebp], edx
shl eax, 8
or eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 2
je 0x646792dd
test ebx, ebx
je 0x64678120
lea ebx, [ecx - 8]
mov dword [ebp + 4], ebx
movzx eax, byte [esi + 7]
lea edx, [esi + 8]
mov dword [ebp], edx
shl eax, 0x10
mov edx, dword [esp + 0x30]
or eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 1
je 0x646792fe
test ebx, ebx
je 0x64678120
lea ebx, [ecx - 9]
mov dword [ebp + 4], ebx
mov al, byte [esi + 8]
add esi, 9
mov dword [ebp], esi
shl eax, 0x18
mov dword [esp + 0x50], edx
or eax, dword [esp + 0x34]
mov dword [esp + 0x54], eax
xor edx, edx
cmp edx, dword [esp + 0x54]
jb 0x64678120
cmp ebx, dword [esp + 0x50]
jb 0x64678120
mov eax, dword [esp + 0x50]
sub ebx, eax
mov dword [ebp + 4], ebx
add dword [ebp], eax
cmp byte [esp + 0x38], 0
js 0x646783c3
nop
mov ebx, dword [esp + 0x5c]
mov ebx, dword [ebx]
add dword [esp + 0x70], ebx
mov esi, dword [esp + 0x5c]
mov esi, dword [esi + 4]
add dword [esp + 0x7c], esi
mov edi, dword [esp + 0x74]
cmp dword [esp + 0x8c], edi
je 0x6467997d
mov ebx, dword [esp + 0x78]
mov edx, dword [esp + 0x104]
add ebx, dword [edx + 4]
mov dword [esp + 0x5c], ebx
mov ecx, dword [ebp + 4]
inc dword [esp + 0x74]
add dword [esp + 0x78], 0x18
test ecx, ecx
je 0x64678120
jmp 0x646782dd
test ecx, ecx
je 0x64678120
lea edi, [ecx - 1]
mov dword [ebp + 4], edi
mov al, byte [ebx]
mov byte [esp + 0x88], al
lea eax, [ebx + 1]
mov dword [ebp], eax
cmp byte [esp + 0x88], 0
jns 0x64678ec9
test edi, edi
je 0x64678120
lea edi, [ecx - 2]
mov dword [ebp + 4], edi
movzx eax, byte [ebx + 1]
lea edx, [ebx + 2]
mov dword [ebp], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
test byte [esp + 0x88], 0x40
je 0x64678fa5
test edi, edi
je 0x64678120
lea edi, [ecx - 3]
mov dword [ebp + 4], edi
movzx eax, byte [ebx + 2]
lea edx, [ebx + 3]
mov dword [ebp], edx
xor edx, edx
shld edx, eax, 8
shl eax, 8
mov esi, dword [esp + 0x40]
or esi, eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
test byte [esp + 0x88], 0x20
je 0x6467902a
test edi, edi
je 0x64678120
lea edi, [ecx - 4]
mov dword [ebp + 4], edi
movzx eax, byte [ebx + 3]
lea edx, [ebx + 4]
mov dword [ebp], edx
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov esi, dword [esp + 0x30]
or esi, eax
mov eax, dword [esp + 0x34]
or eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], eax
test byte [esp + 0x88], 0x10
je 0x64679172
test edi, edi
je 0x64678120
lea edi, [ecx - 5]
mov dword [ebp + 4], edi
movzx eax, byte [ebx + 4]
lea edx, [ebx + 5]
mov dword [ebp], edx
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov esi, dword [esp + 0x30]
or esi, eax
mov eax, dword [esp + 0x34]
or eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], eax
test byte [esp + 0x88], 8
je 0x646791b6
test edi, edi
je 0x64678120
lea edi, [ecx - 6]
mov dword [ebp + 4], edi
movzx eax, byte [ebx + 5]
lea edx, [ebx + 6]
mov dword [ebp], edx
or eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
test byte [esp + 0x88], 4
je 0x64679213
test edi, edi
je 0x64678120
lea edi, [ecx - 7]
mov dword [ebp + 4], edi
movzx eax, byte [ebx + 6]
lea edx, [ebx + 7]
mov dword [ebp], edx
shl eax, 8
or eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
test byte [esp + 0x88], 2
je 0x64679294
test edi, edi
je 0x64678120
lea edi, [ecx - 8]
mov dword [ebp + 4], edi
movzx eax, byte [ebx + 7]
lea edx, [ebx + 8]
mov dword [ebp], edx
shl eax, 0x10
mov edx, dword [esp + 0x30]
or eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
test byte [esp + 0x88], 1
je 0x64679319
test edi, edi
je 0x64678120
lea edi, [ecx - 9]
mov dword [ebp + 4], edi
mov al, byte [ebx + 8]
add ebx, 9
mov dword [ebp], ebx
shl eax, 0x18
mov dword [esp + 0x60], edx
or eax, dword [esp + 0x34]
mov dword [esp + 0x64], eax
cmp dword [esp + 0x64], 0
ja 0x64677e88
cmp dword [esp + 0x60], 0x3ffffff
ja 0x64677e88
test edi, edi
je 0x64678120
lea ecx, [edi - 1]
mov dword [ebp + 4], ecx
mov ebx, dword [ebp]
mov al, byte [ebx]
mov byte [esp + 0x40], al
lea eax, [ebx + 1]
mov dword [ebp], eax
cmp byte [esp + 0x40], 0
jns 0x64678f18
test ecx, ecx
je 0x64678120
lea ecx, [edi - 2]
mov dword [ebp + 4], ecx
mov al, byte [ebx + 1]
lea edx, [ebx + 2]
mov dword [ebp], edx
movzx esi, al
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], 0
test byte [esp + 0x40], 0x40
je 0x64678fe9
test ecx, ecx
je 0x64678120
lea ecx, [edi - 3]
mov dword [ebp + 4], ecx
movzx eax, byte [ebx + 2]
lea edx, [ebx + 3]
mov dword [ebp], edx
xor edx, edx
shld edx, eax, 8
shl eax, 8
or esi, eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
test byte [esp + 0x40], 0x20
je 0x646790af
test ecx, ecx
je 0x64678120
lea ecx, [edi - 4]
mov dword [ebp + 4], ecx
movzx eax, byte [ebx + 3]
lea edx, [ebx + 4]
mov dword [ebp], edx
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov esi, dword [esp + 0x30]
or esi, eax
mov eax, dword [esp + 0x34]
or eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 0x10
je 0x64679131
test ecx, ecx
je 0x64678120
lea ecx, [edi - 5]
mov dword [ebp + 4], ecx
movzx eax, byte [ebx + 4]
lea edx, [ebx + 5]
mov dword [ebp], edx
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov esi, dword [esp + 0x30]
or esi, eax
mov eax, dword [esp + 0x34]
or eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 8
je 0x646791f5
test ecx, ecx
je 0x64678120
lea ecx, [edi - 6]
mov dword [ebp + 4], ecx
movzx eax, byte [ebx + 5]
lea edx, [ebx + 6]
mov dword [ebp], edx
or eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 4
je 0x6467925a
test ecx, ecx
je 0x64678120
lea ecx, [edi - 7]
mov dword [ebp + 4], ecx
movzx eax, byte [ebx + 6]
lea edx, [ebx + 7]
mov dword [ebp], edx
shl eax, 8
or eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 2
je 0x646792ba
test ecx, ecx
je 0x64678120
lea ecx, [edi - 8]
mov dword [ebp + 4], ecx
movzx eax, byte [ebx + 7]
lea edx, [ebx + 8]
mov dword [ebp], edx
shl eax, 0x10
mov edx, dword [esp + 0x30]
or eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
test byte [esp + 0x40], 1
je 0x64679334
test ecx, ecx
je 0x64678120
lea ecx, [edi - 9]
mov dword [ebp + 4], ecx
mov al, byte [ebx + 8]
add ebx, 9
mov dword [ebp], ebx
shl eax, 0x18
mov dword [esp + 0x68], edx
or eax, dword [esp + 0x34]
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
ja 0x64677e88
cmp dword [esp + 0x68], 0x3ffffff
ja 0x64677e88
jmp 0x646783ff
test ebx, ebx
je 0x64678120
lea eax, [ebx - 1]
mov dword [ebp + 4], eax
mov ecx, dword [ebp]
movzx esi, byte [ecx]
lea edx, [ecx + 1]
mov dword [ebp], edx
mov edx, esi
test dl, dl
jns 0x6467936d
test eax, eax
je 0x64678120
lea edi, [ebx - 2]
mov dword [ebp + 4], edi
movzx eax, byte [ecx + 1]
lea edx, [ecx + 2]
mov dword [ebp], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0
test esi, 0x40
je 0x646794ff
test edi, edi
je 0x64678120
lea edi, [ebx - 3]
mov dword [ebp + 4], edi
movzx eax, byte [ecx + 2]
lea edx, [ecx + 3]
mov dword [ebp], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x30]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
test esi, 0x20
je 0x6467973c
test edi, edi
je 0x64678120
lea edi, [ebx - 4]
mov dword [ebp + 4], edi
movzx edx, byte [ecx + 3]
lea eax, [ecx + 4]
mov dword [ebp], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x30]
or edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
or eax, dword [esp + 0x24]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
test esi, 0x10
je 0x646796f9
test edi, edi
je 0x64678120
lea edi, [ebx - 5]
mov dword [ebp + 4], edi
movzx edx, byte [ecx + 4]
lea eax, [ecx + 5]
mov dword [ebp], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x30]
or edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
or eax, dword [esp + 0x24]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
test esi, 8
je 0x646794d5
test edi, edi
je 0x64678120
lea edi, [ebx - 6]
mov dword [ebp + 4], edi
movzx edx, byte [ecx + 5]
lea eax, [ecx + 6]
mov dword [ebp], eax
or edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
test esi, 4
je 0x646794a8
test edi, edi
je 0x64678120
lea edi, [ebx - 7]
mov dword [ebp + 4], edi
movzx edx, byte [ecx + 6]
lea eax, [ecx + 7]
mov dword [ebp], eax
shl edx, 8
or edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
test esi, 2
je 0x6467947b
test edi, edi
je 0x64678120
lea edi, [ebx - 8]
mov dword [ebp + 4], edi
movzx edx, byte [ecx + 7]
lea eax, [ecx + 8]
mov dword [ebp], eax
shl edx, 0x10
mov eax, dword [esp + 0x20]
or edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
and esi, 1
je 0x64679452
test edi, edi
je 0x64678120
sub ebx, 9
mov dword [ebp + 4], ebx
mov bl, byte [ecx + 8]
add ecx, 9
mov dword [ebp], ecx
shl ebx, 0x18
mov dword [esp + 0xa8], eax
or ebx, dword [esp + 0x24]
mov dword [esp + 0xac], ebx
cmp dword [esp + 0xac], 0
ja 0x64677e88
cmp dword [esp + 0xa8], 0x3ffffff
ja 0x64677e88
mov edi, dword [esp + 0xa8]
mov esi, dword [esp + 0x5c]
mov dword [esi], edi
mov eax, dword [ebp + 4]
mov dword [esp + 0x30], eax
test eax, eax
je 0x64678120
mov edx, eax
dec edx
mov dword [ebp + 4], edx
mov eax, dword [ebp]
mov cl, byte [eax]
mov byte [esp + 0x40], cl
lea ecx, [eax + 1]
mov dword [ebp], ecx
cmp byte [esp + 0x40], 0
jns 0x646793bd
test edx, edx
je 0x64678120
mov edx, dword [esp + 0x30]
sub edx, 2
mov dword [ebp + 4], edx
movzx ecx, byte [eax + 1]
lea ebx, [eax + 2]
mov dword [ebp], ebx
mov dword [esp + 0x88], ecx
mov esi, ecx
xor edi, edi
test byte [esp + 0x40], 0x40
je 0x6467953e
test edx, edx
je 0x64678120
mov edx, dword [esp + 0x30]
sub edx, 3
mov dword [ebp + 4], edx
movzx ecx, byte [eax + 2]
lea ebx, [eax + 3]
mov dword [ebp], ebx
xor ebx, ebx
shld ebx, ecx, 8
shl ecx, 8
mov esi, dword [esp + 0x88]
or esi, ecx
mov edi, ebx
test byte [esp + 0x40], 0x20
je 0x646795c0
test edx, edx
je 0x64678120
mov ecx, dword [esp + 0x30]
sub ecx, 4
mov dword [esp + 0x2c], ecx
mov dword [ebp + 4], ecx
movzx ecx, byte [eax + 3]
lea ebx, [eax + 4]
mov dword [ebp], ebx
xor ebx, ebx
shld ebx, ecx, 0x10
shl ecx, 0x10
mov edx, esi
or edx, ecx
mov ecx, edi
or ecx, ebx
mov esi, edx
mov edi, ecx
test byte [esp + 0x40], 0x10
je 0x6467957f
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x64678120
mov ecx, dword [esp + 0x30]
sub ecx, 5
mov dword [esp + 0x2c], ecx
mov dword [ebp + 4], ecx
movzx ecx, byte [eax + 4]
lea ebx, [eax + 5]
mov dword [ebp], ebx
xor ebx, ebx
shld ebx, ecx, 0x18
shl ecx, 0x18
or edx, ecx
mov ecx, edi
or ecx, ebx
mov esi, edx
mov edi, ecx
test byte [esp + 0x40], 8
je 0x64679688
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x64678120
mov edx, dword [esp + 0x30]
sub edx, 6
mov dword [ebp + 4], edx
movzx ecx, byte [eax + 5]
lea ebx, [eax + 6]
mov dword [ebp], ebx
or ecx, edi
mov edi, ecx
test byte [esp + 0x40], 4
je 0x64679659
test edx, edx
je 0x64678120
mov ecx, dword [esp + 0x30]
sub ecx, 7
mov dword [ebp + 4], ecx
movzx edx, byte [eax + 6]
lea ebx, [eax + 7]
mov dword [ebp], ebx
shl edx, 8
or edx, edi
mov edi, edx
test byte [esp + 0x40], 2
je 0x6467962a
test ecx, ecx
je 0x64678120
mov ecx, dword [esp + 0x30]
sub ecx, 8
mov dword [ebp + 4], ecx
movzx edx, byte [eax + 7]
lea ebx, [eax + 8]
mov dword [ebp], ebx
shl edx, 0x10
or edx, edi
mov edi, edx
test byte [esp + 0x40], 1
je 0x64679601
test ecx, ecx
je 0x64678120
mov edx, dword [esp + 0x30]
sub edx, 9
mov dword [ebp + 4], edx
mov dl, byte [eax + 8]
add eax, 9
mov dword [ebp], eax
shl edx, 0x18
mov dword [esp + 0xa0], esi
or edx, edi
mov dword [esp + 0xa4], edx
cmp dword [esp + 0xa4], 0
ja 0x64677e88
cmp dword [esp + 0xa0], 0x3ffffff
ja 0x64677e88
mov esi, dword [esp + 0xa0]
mov ebx, dword [esp + 0x5c]
mov dword [ebx + 4], esi
jmp 0x646783ad
mov al, byte [esp + 0x40]
and eax, 0x7f
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
add edx, dword [esp + 0x90]
adc ecx, dword [esp + 0x94]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
jmp 0x646785c6
mov al, byte [esp + 0x88]
and eax, 0x7f
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
add edx, dword [esp + 0x80]
adc ecx, dword [esp + 0x84]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ecx
jmp 0x64678826
mov al, byte [esp + 0x40]
and eax, 0x7f
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
add ebx, dword [esp + 0x98]
adc esi, dword [esp + 0x9c]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], esi
jmp 0x646789ff
mov al, byte [esp + 0x40]
and eax, 0x3f
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 0
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
shld ecx, edx, 8
shl edx, 8
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
jmp 0x64678ea6
mov dl, byte [esp + 0x88]
and edx, 0x3f
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], 0
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
shld esi, ebx, 8
shl ebx, 8
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], esi
jmp 0x64678ef5
mov dl, byte [esp + 0x40]
and edx, 0x3f
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], 0
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
shld esi, ebx, 8
shl ebx, 8
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], esi
jmp 0x64678f41
mov al, byte [esp + 0x88]
and eax, 0x1f
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
shld ecx, edx, 0x10
shl edx, 0x10
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
jmp 0x64678ef5
mov al, byte [esp + 0x40]
and eax, 0x1f
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 0
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
shld edi, esi, 0x10
shl esi, 0x10
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], edi
jmp 0x64678ea6
mov al, byte [esp + 0x40]
and eax, 0x1f
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], 0
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
shld esi, ebx, 0x10
shl ebx, 0x10
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], esi
jmp 0x64678f41
mov al, byte [esp + 0x40]
and eax, 0xf
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 0
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
shld ecx, edx, 0x18
shl edx, 0x18
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
jmp 0x64678ea6
mov al, byte [esp + 0x40]
and eax, 0xf
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], 0
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
shld esi, ebx, 0x18
shl ebx, 0x18
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], esi
jmp 0x64678f41
mov al, byte [esp + 0x88]
and eax, 0xf
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
shld ecx, edx, 0x18
shl edx, 0x18
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
jmp 0x64678ef5
mov al, byte [esp + 0x88]
and eax, 7
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], 0
jmp 0x64678ef5
mov cl, byte [esp + 0x40]
and ecx, 7
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], 0
jmp 0x64678ea6
mov al, byte [esp + 0x40]
and eax, 7
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], 0
jmp 0x64678f41
mov dl, byte [esp + 0x88]
and edx, 3
mov esi, edx
shl esi, 8
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], 0
jmp 0x64678ef5
mov al, byte [esp + 0x40]
and eax, 3
shl eax, 8
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], 0
jmp 0x64678ea6
mov dl, byte [esp + 0x40]
and edx, 3
mov edi, edx
shl edi, 8
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], 0
jmp 0x64678f41
mov esi, dword [esp + 0x5c]
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
jmp 0x64678391
mov cl, byte [esp + 0x88]
and ecx, 1
mov esi, ecx
shl esi, 0x10
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], 0
jmp 0x64678ef5
mov bl, byte [esp + 0x40]
and ebx, 1
mov edi, ebx
shl edi, 0x10
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], 0
jmp 0x64678f41
mov al, byte [esp + 0x40]
and eax, 1
shl eax, 0x10
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], 0
jmp 0x64678ea6
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
jmp 0x64678ea6
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
jmp 0x64678ef5
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
jmp 0x64678f41
mov eax, 0x40
mov edx, 1
jmp 0x64678147
mov eax, 0x20
mov edx, 2
jmp 0x64678147
mov eax, esi
and eax, 0x7f
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
add ebx, dword [esp + 0x20]
adc esi, dword [esp + 0x24]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], esi
jmp 0x64678c48
mov al, byte [esp + 0x40]
and eax, 0x7f
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 0
xor esi, esi
xor edi, edi
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
add edx, esi
adc ecx, edi
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
jmp 0x64678e4b
mov eax, 0x8007000e
jmp 0x64678125
mov al, byte [esp + 0x10]
and eax, 0x7f
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], 0
xor eax, eax
xor edx, edx
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
add esi, eax
adc edi, edx
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], edi
mov ebx, dword [esp + 0xb0]
jmp 0x646780b9
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
jmp 0x646793a2
mov ecx, esi
and ecx, 1
shl ecx, 0x10
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xc8], 0
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
jmp 0x646793a2
mov ecx, esi
and ecx, 3
shl ecx, 8
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xc8], 0
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
jmp 0x646793a2
mov edx, esi
and edx, 7
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], 0
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
jmp 0x646793a2
mov ecx, esi
and ecx, 0x3f
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], 0
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
shld esi, ebx, 8
shl ebx, 8
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
jmp 0x646793a2
mov al, byte [esp + 0x40]
and eax, 0x3f
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 0
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
shld ecx, edx, 8
shl edx, 8
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ecx
jmp 0x646793e8
mov al, byte [esp + 0x40]
and eax, 0xf
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 0
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
shld ecx, edx, 0x18
shl edx, 0x18
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ecx
jmp 0x646793e8
mov al, byte [esp + 0x40]
and eax, 0x1f
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 0
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
shld ecx, edx, 0x10
shl edx, 0x10
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ecx
jmp 0x646793e8
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
jmp 0x646793e8
mov al, byte [esp + 0x40]
and eax, 1
shl eax, 0x10
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], 0
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
jmp 0x646793e8
mov al, byte [esp + 0x40]
and eax, 3
shl eax, 8
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], 0
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
jmp 0x646793e8
mov cl, byte [esp + 0x40]
and ecx, 7
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc0], 0
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
jmp 0x646793e8
mov cl, byte [esp + 0x10]
and ecx, 0x3f
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], 0
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
shld esi, ebx, 8
shl ebx, 8
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], esi
mov edi, esi
mov esi, ebx
jmp 0x64679434
mov ecx, esi
and ecx, 0xf
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], 0
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
shld ecx, edx, 0x18
shl edx, 0x18
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], ecx
mov ebx, edx
mov esi, ecx
jmp 0x646793a2
mov ecx, esi
and ecx, 0x1f
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], 0
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
shld ecx, edx, 0x10
shl edx, 0x10
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], ecx
mov ebx, edx
mov esi, ecx
jmp 0x646793a2
mov cl, byte [esp + 0x10]
and ecx, 3
shl ecx, 8
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb8], 0
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
jmp 0x64679434
mov cl, byte [esp + 0x10]
and ecx, 7
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb8], 0
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
jmp 0x64679434
mov cl, byte [esp + 0x10]
and ecx, 0xf
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], 0
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
shld edi, esi, 0x18
shl esi, 0x18
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], edi
jmp 0x64679434
mov cl, byte [esp + 0x10]
and ecx, 0x1f
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], 0
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
shld edi, esi, 0x10
shl esi, 0x10
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], edi
jmp 0x64679434
lea eax, [esi*4]
mov dword [esp], eax
mov edx, dword [esp + 0x108]
call edx
mov edi, dword [esp + 0x104]
mov dword [edi + 0x14], eax
test eax, eax
je 0x646793ff
cmp esi, 1
jne 0x6467994e
xor ebx, ebx
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x6467989f
jmp 0x646798c2
inc ebx
cmp ebx, dword [esp + 0x70]
je 0x646798c2
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x104]
mov dword [esp], edx
call sym.allegro_5.0.10_monolith_mt.dll_SzFolderFindBindPairForInStream
test eax, eax
jns 0x64679898
mov esi, dword [esp + 0x104]
mov eax, dword [esi + 0x14]
mov dword [eax], ebx
xor eax, eax
jmp 0x64678125
mov eax, 0x10
mov edx, 3
jmp 0x64678147
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
jmp 0x64679434
mov cl, byte [esp + 0x10]
and ecx, 1
shl ecx, 0x10
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb8], 0
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
jmp 0x64679434
mov eax, 8
mov edx, 4
jmp 0x64678147
mov eax, 4
mov edx, 5
jmp 0x64678147
xor edi, edi
mov ebp, dword [esp + 0x104]
mov eax, dword [ebp + 0x14]
lea eax, [eax + edi*4]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym.allegro_5.0.10_monolith_mt.dll_SzReadNumber32
test eax, eax
jne 0x64678125
inc edi
cmp edi, esi
jne 0x64679957
xor eax, eax
jmp 0x64678125
mov ebx, ebp
mov edi, dword [esp + 0x7c]
dec edi
mov edx, dword [esp + 0x104]
mov dword [edx + 8], edi
test edi, edi
jne 0x646799bc
mov dword [edx + 0xc], 0
jmp 0x64678220
mov eax, 1
mov edx, 7
jmp 0x64678147
mov eax, 2
mov edx, 6
jmp 0x64678147
lea eax, [edi*8]
jmp 0x646781b9