Function at 0x10007890
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x3c
mov eax, dword [0x1002b150]
push ebx
push esi
push edi
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea ecx, [eax + 0x7e8]
lea edx, [eax + 0x8e8]
lea ebx, [eax + 0x9e8]
mov dword [esp + 0x34], ecx
lea ecx, [eax + 0xae8]
mov dword [esp + 0x20], edx
lea edx, [eax + 0xbe8]
mov dword [esp + 0x44], ebx
lea ebx, [eax + 0xce8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ebx
cmp dword [eax + 0x7b8], 3
mov dword [esp + 0x40], 0
jne 0x10007e90
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], 4
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x1002f360
add dword [esp + 0x18], 4
movsx edi, word [ecx]
movsx esi, word [ecx + 2]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x10030360
add dword [esp + 0x14], 4
movsx edx, word [ecx]
movsx ebp, word [ecx + 2]
add esi, edx
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
xor edx, 0xffff8003
and edx, 0xfffc
shr edx, 2
add dword [esp + 0x34], 4
lea ecx, [edi + edx]
lea ebx, [esi + edx]
add edx, ebp
test ch, 0xc0
je 0x10007985
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10007988
sar ecx, 6
test bh, 0xc0
je 0x100079a0
and ebx, 0x8000
cmp ebx, 1
sbb ebx, ebx
and ebx, 0xff
jmp 0x100079a3
sar ebx, 6
test dh, 0xc0
je 0x100079bb
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x100079be
sar edx, 6
mov byte [eax], cl
mov ecx, dword [esp + 0x34]
mov byte [eax + 1], bl
mov byte [eax + 2], dl
mov ebx, dword [ecx]
xor ebx, 0xffff8003
and ebx, 0xfffc
shr ebx, 2
add dword [esp + 0x34], 4
lea ecx, [edi + ebx]
lea edx, [esi + ebx]
add ebx, ebp
test ch, 0xc0
je 0x10007a00
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10007a03
sar ecx, 6
test dh, 0xc0
je 0x10007a1b
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x10007a1e
sar edx, 6
test bh, 0xc0
je 0x10007a36
and ebx, 0x8000
cmp ebx, 1
sbb ebx, ebx
and ebx, 0xff
jmp 0x10007a39
sar ebx, 6
mov byte [eax + 3], cl
add eax, 6
dec dword [esp + 0x48]
mov byte [eax - 2], dl
mov byte [eax - 1], bl
jne 0x10007907
mov dword [esp + 0x48], 4
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x1002f360
add dword [esp + 0x18], 4
movsx ebp, word [ecx]
movsx esi, word [ecx + 2]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x10030360
add dword [esp + 0x14], 4
movsx edx, word [ecx]
movsx edi, word [ecx + 2]
add esi, edx
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
xor edx, 0xffff8003
and edx, 0xfffc
shr edx, 2
add dword [esp + 0x20], 4
lea ecx, [ebp + edx]
lea ebx, [esi + edx]
add edx, edi
test ch, 0xc0
je 0x10007ad6
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10007ad9
sar ecx, 6
test bh, 0xc0
je 0x10007af1
and ebx, 0x8000
cmp ebx, 1
sbb ebx, ebx
and ebx, 0xff
jmp 0x10007af4
sar ebx, 6
test dh, 0xc0
je 0x10007b0c
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x10007b0f
sar edx, 6
mov byte [eax], cl
mov ecx, dword [esp + 0x20]
mov byte [eax + 1], bl
mov byte [eax + 2], dl
mov ebx, dword [ecx]
xor ebx, 0xffff8003
and ebx, 0xfffc
shr ebx, 2
add dword [esp + 0x20], 4
lea ecx, [ebp + ebx]
lea edx, [esi + ebx]
add ebx, edi
test ch, 0xc0
je 0x10007b52
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10007b55
sar ecx, 6
test dh, 0xc0
je 0x10007b6d
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x10007b70
sar edx, 6
test bh, 0xc0
je 0x10007b88
and ebx, 0x8000
cmp ebx, 1
sbb ebx, ebx
and ebx, 0xff
jmp 0x10007b8b
sar ebx, 6
mov byte [eax + 3], cl
add eax, 6
dec dword [esp + 0x48]
mov byte [eax - 2], dl
mov byte [eax - 1], bl
jne 0x10007a57
test byte [esp + 0x40], 1
jne 0x10007bb2
sub dword [esp + 0x18], 0x20
sub dword [esp + 0x14], 0x20
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 8
jl 0x100078f4
mov dword [esp + 0x40], 0
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], 4
mov edi, dword [ecx + eax*4 + 0x20]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x14]
and eax, 0xffc0
shr eax, 4
add eax, 0x1002f360
add dword [esp + 0x14], 4
movsx esi, word [eax]
movsx ebx, word [eax + 2]
mov eax, dword [ecx]
and eax, 0xffc0
shr eax, 4
add eax, 0x10030360
add dword [esp + 0x18], 4
movsx ecx, word [eax]
movsx ebp, word [eax + 2]
add ebx, ecx
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
xor ecx, 0xffff8003
and ecx, 0xfffc
shr ecx, 2
add dword [esp + 0x44], 4
lea eax, [esi + ecx]
lea edx, [ebx + ecx]
add ecx, ebp
test ah, 0xc0
je 0x10007c55
and eax, 0x8000
cmp eax, 1
sbb eax, eax
and eax, 0xff
jmp 0x10007c58
sar eax, 6
test dh, 0xc0
je 0x10007c70
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x10007c73
sar edx, 6
test ch, 0xc0
je 0x10007c8b
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10007c8e
sar ecx, 6
mov byte [edi], al
mov byte [edi + 1], dl
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
xor edx, 0xffff8003
and edx, 0xfffc
shr edx, 2
add dword [esp + 0x44], 4
lea eax, [esi + edx]
lea ecx, [ebx + edx]
add edx, ebp
test ah, 0xc0
je 0x10007cce
and eax, 0x8000
cmp eax, 1
sbb eax, eax
and eax, 0xff
jmp 0x10007cd1
sar eax, 6
test ch, 0xc0
je 0x10007ce9
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10007cec
sar ecx, 6
test dh, 0xc0
je 0x10007d04
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x10007d07
sar edx, 6
mov byte [edi + 3], al
add edi, 6
dec dword [esp + 0x48]
mov byte [edi - 2], cl
mov byte [edi - 1], dl
jne 0x10007bdd
mov dword [esp + 0x48], 4
mov ecx, dword [esp + 0x18]
add dword [esp + 0x18], 4
mov eax, dword [ecx]
mov ecx, dword [esp + 0x14]
and eax, 0xffc0
mov ecx, dword [ecx]
shr eax, 4
and ecx, 0xffc0
shr ecx, 4
add eax, 0x1002f360
add dword [esp + 0x14], 4
movsx esi, word [eax]
add ecx, 0x10030360
movsx eax, word [eax + 2]
movsx edx, word [ecx]
movsx ebp, word [ecx + 2]
add eax, edx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx]
xor ecx, 0xffff8003
and ecx, 0xfffc
shr ecx, 2
add dword [esp + 0x30], 4
lea ebx, [esi + ecx]
lea edx, [eax + ecx]
add ecx, ebp
test bh, 0xc0
je 0x10007da1
and ebx, 0x8000
cmp ebx, 1
sbb ebx, ebx
and ebx, 0xff
jmp 0x10007da4
sar ebx, 6
test dh, 0xc0
je 0x10007dbc
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x10007dbf
sar edx, 6
test ch, 0xc0
je 0x10007dd7
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10007dda
sar ecx, 6
mov byte [edi], bl
mov byte [edi + 1], dl
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x30]
add dword [esp + 0x30], 4
mov edx, dword [ecx]
xor edx, 0xffff8003
and edx, 0xfffc
shr edx, 2
add eax, edx
lea ecx, [esi + edx]
add edx, ebp
test ch, 0xc0
je 0x10007e1b
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10007e1e
sar ecx, 6
test ah, 0xc0
je 0x10007e34
and eax, 0x8000
cmp eax, 1
sbb eax, eax
and eax, 0xff
jmp 0x10007e37
sar eax, 6
test dh, 0xc0
je 0x10007e4f
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x10007e52
sar edx, 6
mov byte [edi + 3], cl
add edi, 6
dec dword [esp + 0x48]
mov byte [edi - 2], al
mov byte [edi - 1], dl
jne 0x10007d25
test byte [esp + 0x40], 1
jne 0x10007e79
sub dword [esp + 0x18], 0x20
sub dword [esp + 0x14], 0x20
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 8
jl 0x10007bc9
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x3c
ret
mov dword [esp + 0x2c], 0x1002d668
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x44], 1
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], 4
mov edi, dword [ecx]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x1002f360
add dword [esp + 0x18], 4
movsx edx, word [ecx]
movsx ebp, word [ecx + 2]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x10030360
add dword [esp + 0x14], 4
movsx edx, word [ecx]
movsx esi, word [ecx + 2]
add ebp, edx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], esi
add dword [esp + 0x34], 4
mov ecx, dword [ecx]
xor ecx, 0xffff8003
and ecx, 0xfffc
shr ecx, 2
add edx, ecx
mov dword [esp + 0x10], edx
lea edx, [ebp + ecx]
add ecx, esi
test byte [esp + 0x11], 0xc0
je 0x10007f56
mov esi, dword [esp + 0x10]
and esi, 0x8000
cmp esi, 1
sbb esi, esi
and esi, 0xff
mov dword [esp + 0x10], esi
jmp 0x10007f5b
sar dword [esp + 0x10], 6
test dh, 0xc0
je 0x10007f73
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x10007f76
sar edx, 6
test ch, 0xc0
je 0x10007f8e
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10007f91
sar ecx, 6
mov esi, dword [eax + 0x7b8]
cmp esi, 1
je 0x10007fe9
cmp esi, 4
je 0x10008062
cmp esi, 0xa
je 0x10008076
shr ecx, 1
inc edi
and cl, 0x7c
inc edi
mov dword [esp + 0x38], edx
and byte [esp + 0x38], 0x38
sar edx, 6
mov ebx, dword [esp + 0x38]
shl bl, 2
or cl, dl
mov byte [esp + 0x38], bl
mov ebx, dword [esp + 0x10]
sar ebx, 3
or byte [esp + 0x38], bl
mov bl, byte [esp + 0x38]
mov byte [edi - 2], bl
mov byte [edi - 1], cl
jmp 0x100080ac
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
and ebx, 3
mov esi, dword [esi + ebx*8]
mov ebx, dword [esp + 0x10]
sar esi, 3
sub esi, 0x10
add ebx, esi
cmp ebx, 0xff
jl 0x10008010
mov ebx, 0xff
test ebx, ebx
jg 0x10008016
xor ebx, ebx
mov dword [esp + 0x10], ebx
lea ebx, [esi + edx]
cmp ebx, 0xff
jl 0x1000802a
mov ebx, 0xff
test ebx, ebx
jg 0x10008030
xor ebx, ebx
add ecx, esi
cmp ecx, 0xff
jl 0x1000803f
mov ecx, 0xff
test ecx, ecx
jg 0x10008045
xor ecx, ecx
shr ebx, 3
mov edx, dword [esp + 0x10]
shr edx, 6
and bl, 0x1c
and dl, 3
and cl, 0xe0
or dl, bl
inc edi
or dl, cl
mov byte [edi - 1], dl
jmp 0x100080ac
mov bl, byte [esp + 0x10]
mov byte [edi], bl
mov byte [edi + 1], dl
mov byte [edi + 2], cl
add edi, dword [eax + 0x7b8]
jmp 0x100080ac
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
and ebx, 3
mov esi, dword [esi + ebx*8]
mov bl, 4
cmp dword [esp + 0x10], esi
jg 0x1000808e
xor bl, bl
cmp ecx, esi
setg cl
or bl, cl
mov cl, 2
cmp edx, esi
jg 0x1000809d
xor cl, cl
or bl, cl
xor ecx, ecx
mov cl, bl
test ecx, ecx
je 0x100080aa
or ecx, 8
mov byte [edi], cl
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
add dword [esp + 0x34], 4
mov ecx, dword [ecx]
xor ecx, 0xffff8003
and ecx, 0xfffc
shr ecx, 2
add edx, ecx
mov dword [esp + 0x10], edx
lea edx, [ebp + ecx]
add ecx, dword [esp + 0x24]
test byte [esp + 0x11], 0xc0
je 0x100080fa
mov esi, dword [esp + 0x10]
and esi, 0x8000
cmp esi, 1
sbb esi, esi
and esi, 0xff
mov dword [esp + 0x10], esi
jmp 0x100080ff
sar dword [esp + 0x10], 6
test dh, 0xc0
je 0x10008117
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x1000811a
sar edx, 6
test ch, 0xc0
je 0x10008132
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10008135
sar ecx, 6
mov esi, dword [eax + 0x7b8]
cmp esi, 1
je 0x1000818d
cmp esi, 4
je 0x10008205
cmp esi, 0xa
je 0x10008219
shr ecx, 1
inc edi
and cl, 0x7c
inc edi
mov dword [esp + 0x38], edx
and byte [esp + 0x38], 0x38
sar edx, 6
mov ebx, dword [esp + 0x38]
shl bl, 2
or cl, dl
mov byte [esp + 0x38], bl
mov ebx, dword [esp + 0x10]
sar ebx, 3
or byte [esp + 0x38], bl
mov bl, byte [esp + 0x38]
mov byte [edi - 2], bl
mov byte [edi - 1], cl
jmp 0x1000825e
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
and ebx, 0x1c
mov ebx, dword [ebx + esi]
mov esi, dword [esp + 0x10]
sar ebx, 3
sub ebx, 0x10
add esi, ebx
cmp esi, 0xff
jl 0x100081b4
mov esi, 0xff
test esi, esi
jg 0x100081ba
xor esi, esi
add edx, ebx
mov dword [esp + 0x10], esi
cmp edx, 0xff
jl 0x100081cd
mov edx, 0xff
test edx, edx
jg 0x100081d3
xor edx, edx
add ebx, ecx
cmp ebx, 0xff
jl 0x100081e2
mov ebx, 0xff
test ebx, ebx
jg 0x100081e8
xor ebx, ebx
shr edx, 3
mov ecx, dword [esp + 0x10]
shr ecx, 6
and dl, 0x1c
and cl, 3
and bl, 0xe0
or cl, dl
inc edi
or cl, bl
mov byte [edi - 1], cl
jmp 0x1000825e
mov bl, byte [esp + 0x10]
mov byte [edi], bl
mov byte [edi + 1], dl
mov byte [edi + 2], cl
add edi, dword [eax + 0x7b8]
jmp 0x1000825e
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
and ebx, 0x1c
mov esi, dword [ebx + esi]
mov bl, 4
cmp dword [esp + 0x10], esi
jg 0x10008231
xor bl, bl
cmp ecx, esi
setg cl
or bl, cl
mov cl, 2
cmp edx, esi
jg 0x10008240
xor cl, cl
or bl, cl
xor ecx, ecx
mov cl, bl
test ecx, ecx
je 0x1000824d
or ecx, 8
test byte [esp + 0x44], 1
je 0x1000825c
shl cl, 4
or byte [edi], cl
inc edi
jmp 0x1000825e
mov byte [edi], cl
add dword [esp + 0x44], 2
add dword [esp + 0x3c], 8
inc dword [esp + 0x1c]
cmp dword [esp + 0x3c], 0x24
jl 0x10007ebe
mov dword [esp + 0x1c], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x3c], 4
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x1002f360
add dword [esp + 0x18], 4
movsx edx, word [ecx]
movsx ebp, word [ecx + 2]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x10030360
add dword [esp + 0x14], 4
movsx edx, word [ecx]
movsx esi, word [ecx + 2]
add ebp, edx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], esi
add dword [esp + 0x20], 4
mov ecx, dword [ecx]
xor ecx, 0xffff8003
and ecx, 0xfffc
shr ecx, 2
add edx, ecx
mov dword [esp + 0x10], edx
lea edx, [ebp + ecx]
add ecx, esi
test byte [esp + 0x11], 0xc0
je 0x10008327
mov esi, dword [esp + 0x10]
and esi, 0x8000
cmp esi, 1
sbb esi, esi
and esi, 0xff
mov dword [esp + 0x10], esi
jmp 0x1000832c
sar dword [esp + 0x10], 6
test dh, 0xc0
je 0x10008344
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x10008347
sar edx, 6
test ch, 0xc0
je 0x1000835f
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10008362
sar ecx, 6
mov esi, dword [eax + 0x7b8]
cmp esi, 1
je 0x100083ba
cmp esi, 4
je 0x10008434
cmp esi, 0xa
je 0x10008448
shr ecx, 1
inc edi
and cl, 0x7c
inc edi
mov dword [esp + 0x38], edx
and byte [esp + 0x38], 0x38
sar edx, 6
mov ebx, dword [esp + 0x38]
shl bl, 2
or cl, dl
mov byte [esp + 0x38], bl
mov ebx, dword [esp + 0x10]
sar ebx, 3
or byte [esp + 0x38], bl
mov bl, byte [esp + 0x38]
mov byte [edi - 2], bl
mov byte [edi - 1], cl
jmp 0x1000847e
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
and ebx, 3
mov esi, dword [esi + ebx*8]
mov ebx, dword [esp + 0x10]
sar esi, 3
sub esi, 0x10
add ebx, esi
cmp ebx, 0xff
jl 0x100083e1
mov ebx, 0xff
test ebx, ebx
jg 0x100083e7
xor ebx, ebx
mov dword [esp + 0x10], ebx
lea ebx, [edx + esi]
cmp ebx, 0xff
jl 0x100083fb
mov ebx, 0xff
test ebx, ebx
jg 0x10008401
xor ebx, ebx
lea edx, [esi + ecx]
cmp edx, 0xff
jl 0x10008411
mov edx, 0xff
test edx, edx
jg 0x10008417
xor edx, edx
shr ebx, 3
mov ecx, dword [esp + 0x10]
shr ecx, 6
and bl, 0x1c
and cl, 3
and dl, 0xe0
or cl, bl
inc edi
or cl, dl
mov byte [edi - 1], cl
jmp 0x1000847e
mov bl, byte [esp + 0x10]
mov byte [edi], bl
mov byte [edi + 1], dl
mov byte [edi + 2], cl
add edi, dword [eax + 0x7b8]
jmp 0x1000847e
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
and ebx, 3
mov esi, dword [esi + ebx*8]
mov bl, 4
cmp dword [esp + 0x10], esi
jg 0x10008460
xor bl, bl
cmp ecx, esi
setg cl
or bl, cl
mov cl, 2
cmp edx, esi
jg 0x1000846f
xor cl, cl
or bl, cl
xor ecx, ecx
mov cl, bl
test ecx, ecx
je 0x1000847c
or ecx, 8
mov byte [edi], cl
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add dword [esp + 0x20], 4
mov ecx, dword [ecx]
xor ecx, 0xffff8003
and ecx, 0xfffc
shr ecx, 2
add edx, ecx
mov dword [esp + 0x10], edx
lea edx, [ebp + ecx]
add ecx, dword [esp + 0x24]
test byte [esp + 0x11], 0xc0
je 0x100084cc
mov esi, dword [esp + 0x10]
and esi, 0x8000
cmp esi, 1
sbb esi, esi
and esi, 0xff
mov dword [esp + 0x10], esi
jmp 0x100084d1
sar dword [esp + 0x10], 6
test dh, 0xc0
je 0x100084e9
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
jmp 0x100084ec
sar edx, 6
test ch, 0xc0
je 0x10008504
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10008507
sar ecx, 6
mov esi, dword [eax + 0x7b8]
cmp esi, 1
je 0x1000855f
cmp esi, 4
je 0x100085cf
cmp esi, 0xa
je 0x100085e3
shr ecx, 1
inc edi
and cl, 0x7c
inc edi
mov dword [esp + 0x38], edx
and byte [esp + 0x38], 0x38
sar edx, 6
mov ebx, dword [esp + 0x38]
shl bl, 2
or cl, dl
mov byte [esp + 0x38], bl
mov ebx, dword [esp + 0x10]
sar ebx, 3
or byte [esp + 0x38], bl
mov bl, byte [esp + 0x38]
mov byte [edi - 2], bl
mov byte [edi - 1], cl
jmp 0x10008628
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
and ebx, 0x1c
mov esi, dword [ebx + esi]
mov ebx, dword [esp + 0x10]
sar esi, 3
sub esi, 0x10
add ebx, esi
cmp ebx, 0xff
jl 0x10008586
mov ebx, 0xff
test ebx, ebx
jg 0x1000858c
xor ebx, ebx
add edx, esi
cmp edx, 0xff
jl 0x1000859b
mov edx, 0xff
test edx, edx
jg 0x100085a1
xor edx, edx
add ecx, esi
cmp ecx, 0xff
jl 0x100085b0
mov ecx, 0xff
test ecx, ecx
jg 0x100085b6
xor ecx, ecx
shr ebx, 6
and cl, 0xe0
shr edx, 3
and bl, 3
and dl, 0x1c
inc edi
or bl, dl
or bl, cl
mov byte [edi - 1], bl
jmp 0x10008628
mov bl, byte [esp + 0x10]
mov byte [edi], bl
mov byte [edi + 1], dl
mov byte [edi + 2], cl
add edi, dword [eax + 0x7b8]
jmp 0x10008628
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
and ebx, 0x1c
mov esi, dword [ebx + esi]
mov bl, 4
cmp dword [esp + 0x10], esi
jg 0x100085fb
xor bl, bl
cmp ecx, esi
setg cl
or bl, cl
mov cl, 2
cmp edx, esi
jg 0x1000860a
xor cl, cl
or bl, cl
xor ecx, ecx
mov cl, bl
test ecx, ecx
je 0x10008617
or ecx, 8
test byte [esp + 0x44], 1
je 0x10008626
shl cl, 4
or byte [edi], cl
inc edi
jmp 0x10008628
mov byte [edi], cl
add dword [esp + 0x44], 2
add dword [esp + 0x3c], 8
inc dword [esp + 0x1c]
cmp dword [esp + 0x3c], 0x24
jl 0x1000828f
test byte [esp + 0x40], 1
jne 0x10008652
sub dword [esp + 0x18], 0x20
sub dword [esp + 0x14], 0x20
add dword [esp + 0x48], 4
add dword [esp + 0x2c], 0x20
inc dword [esp + 0x40]
cmp dword [esp + 0x2c], 0x1002d768
jb 0x10007ea0
mov dword [esp + 0x40], 0
mov dword [esp + 0x34], 0x1002d668
mov ecx, dword [esp + 0x50]
add ecx, 0x20
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x44], 1
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], 4
mov esi, dword [ecx]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x1002f360
add dword [esp + 0x18], 4
movsx edx, word [ecx]
movsx ebp, word [ecx + 2]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x10030360
add dword [esp + 0x14], 4
movsx edx, word [ecx]
movsx ecx, word [ecx + 2]
add ebp, edx
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x20]
add dword [esp + 0x20], 4
mov ecx, dword [edx]
mov edx, dword [esp + 0x28]
xor ecx, 0xffff8003
and ecx, 0xfffc
shr ecx, 2
add edx, ecx
lea ebx, [ebp + ecx]
add ecx, dword [esp + 0x24]
mov dword [esp + 0x10], edx
test dh, 0xc0
je 0x1000873b
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
mov dword [esp + 0x10], edx
jmp 0x10008740
sar dword [esp + 0x10], 6
test bh, 0xc0
je 0x10008758
and ebx, 0x8000
cmp ebx, 1
sbb ebx, ebx
and ebx, 0xff
jmp 0x1000875b
sar ebx, 6
test ch, 0xc0
je 0x10008773
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10008776
sar ecx, 6
mov edx, dword [eax + 0x7b8]
cmp edx, 1
je 0x100087ce
cmp edx, 4
je 0x10008846
cmp edx, 0xa
je 0x1000885a
shr ecx, 1
inc esi
and cl, 0x7c
inc esi
mov dword [esp + 0x38], ebx
and byte [esp + 0x38], 0x38
sar ebx, 6
mov edx, dword [esp + 0x38]
shl dl, 2
or cl, bl
mov byte [esp + 0x38], dl
mov edx, dword [esp + 0x10]
sar edx, 3
or byte [esp + 0x38], dl
mov dl, byte [esp + 0x38]
mov byte [esi - 2], dl
mov byte [esi - 1], cl
jmp 0x10008890
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
and edi, 3
mov edx, dword [edx + edi*8]
mov edi, dword [esp + 0x10]
sar edx, 3
sub edx, 0x10
add edi, edx
cmp edi, 0xff
jl 0x100087f5
mov edi, 0xff
test edi, edi
jg 0x100087fb
xor edi, edi
add ebx, edx
mov dword [esp + 0x10], edi
cmp ebx, 0xff
jl 0x1000880e
mov ebx, 0xff
test ebx, ebx
jg 0x10008814
xor ebx, ebx
add edx, ecx
cmp edx, 0xff
jl 0x10008823
mov edx, 0xff
test edx, edx
jg 0x10008829
xor edx, edx
shr ebx, 3
mov ecx, dword [esp + 0x10]
shr ecx, 6
and bl, 0x1c
and cl, 3
and dl, 0xe0
or cl, bl
inc esi
or cl, dl
mov byte [esi - 1], cl
jmp 0x10008890
mov dl, byte [esp + 0x10]
mov byte [esi], dl
mov byte [esi + 1], bl
mov byte [esi + 2], cl
add esi, dword [eax + 0x7b8]
jmp 0x10008890
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
and edi, 3
mov edi, dword [edx + edi*8]
mov dl, 4
cmp dword [esp + 0x10], edi
jg 0x10008872
xor dl, dl
cmp ecx, edi
setg cl
or dl, cl
mov cl, 2
cmp ebx, edi
jg 0x10008881
xor cl, cl
or dl, cl
xor ecx, ecx
mov cl, dl
test ecx, ecx
je 0x1000888e
or ecx, 8
mov byte [esi], cl
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add dword [esp + 0x20], 4
mov ecx, dword [ecx]
xor ecx, 0xffff8003
and ecx, 0xfffc
shr ecx, 2
add edx, ecx
lea ebx, [ebp + ecx]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x10], edx
add ecx, ebp
test dh, 0xc0
je 0x100088da
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
mov dword [esp + 0x10], edx
jmp 0x100088df
sar dword [esp + 0x10], 6
test bh, 0xc0
je 0x100088f7
and ebx, 0x8000
cmp ebx, 1
sbb ebx, ebx
and ebx, 0xff
jmp 0x100088fa
sar ebx, 6
test ch, 0xc0
je 0x10008912
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10008915
sar ecx, 6
mov edx, dword [eax + 0x7b8]
cmp edx, 1
je 0x1000896d
cmp edx, 4
je 0x100089e7
cmp edx, 0xa
je 0x100089fb
shr ecx, 1
inc esi
and cl, 0x7c
inc esi
mov dword [esp + 0x38], ebx
and byte [esp + 0x38], 0x38
sar ebx, 6
mov edx, dword [esp + 0x38]
shl dl, 2
or cl, bl
mov byte [esp + 0x38], dl
mov edx, dword [esp + 0x10]
sar edx, 3
or byte [esp + 0x38], dl
mov dl, byte [esp + 0x38]
mov byte [esi - 2], dl
mov byte [esi - 1], cl
jmp 0x10008a40
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
and edi, 0x1c
mov edi, dword [edi + edx]
mov edx, dword [esp + 0x10]
sar edi, 3
sub edi, 0x10
add edx, edi
cmp edx, 0xff
jl 0x10008994
mov edx, 0xff
test edx, edx
jg 0x1000899a
xor edx, edx
mov dword [esp + 0x10], edx
lea edx, [edi + ebx]
cmp edx, 0xff
jl 0x100089ae
mov edx, 0xff
test edx, edx
jg 0x100089b4
xor edx, edx
lea ebx, [edi + ecx]
cmp ebx, 0xff
jl 0x100089c4
mov ebx, 0xff
test ebx, ebx
jg 0x100089ca
xor ebx, ebx
shr edx, 3
mov ecx, dword [esp + 0x10]
shr ecx, 6
and dl, 0x1c
and cl, 3
and bl, 0xe0
or cl, dl
inc esi
or cl, bl
mov byte [esi - 1], cl
jmp 0x10008a40
mov dl, byte [esp + 0x10]
mov byte [esi], dl
mov byte [esi + 1], bl
mov byte [esi + 2], cl
add esi, dword [eax + 0x7b8]
jmp 0x10008a40
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
and edi, 0x1c
mov edi, dword [edi + edx]
mov dl, 4
cmp dword [esp + 0x10], edi
jg 0x10008a13
xor dl, dl
cmp ecx, edi
setg cl
or dl, cl
mov cl, 2
cmp ebx, edi
jg 0x10008a22
xor cl, cl
or dl, cl
xor ecx, ecx
mov cl, dl
test ecx, ecx
je 0x10008a2f
or ecx, 8
test byte [esp + 0x44], 1
je 0x10008a3e
shl cl, 4
or byte [esi], cl
inc esi
jmp 0x10008a40
mov byte [esi], cl
add dword [esp + 0x44], 2
add dword [esp + 0x3c], 8
inc dword [esp + 0x1c]
cmp dword [esp + 0x3c], 0x24
jl 0x100086a7
mov dword [esp + 0x1c], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x3c], 4
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x1002f360
add dword [esp + 0x18], 4
movsx edx, word [ecx]
movsx ebp, word [ecx + 2]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov ecx, dword [ecx]
and ecx, 0xffc0
shr ecx, 4
add ecx, 0x10030360
add dword [esp + 0x14], 4
movsx edx, word [ecx]
movsx ecx, word [ecx + 2]
add ebp, edx
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x30]
add dword [esp + 0x30], 4
mov ecx, dword [edx]
mov edx, dword [esp + 0x28]
xor ecx, 0xffff8003
and ecx, 0xfffc
shr ecx, 2
add edx, ecx
lea ebx, [ebp + ecx]
add ecx, dword [esp + 0x24]
mov dword [esp + 0x10], edx
test dh, 0xc0
je 0x10008b05
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
mov dword [esp + 0x10], edx
jmp 0x10008b0a
sar dword [esp + 0x10], 6
test bh, 0xc0
je 0x10008b22
and ebx, 0x8000
cmp ebx, 1
sbb ebx, ebx
and ebx, 0xff
jmp 0x10008b25
sar ebx, 6
test ch, 0xc0
je 0x10008b3d
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10008b40
sar ecx, 6
mov edx, dword [eax + 0x7b8]
cmp edx, 1
je 0x10008b98
cmp edx, 4
je 0x10008c10
cmp edx, 0xa
je 0x10008c24
shr ecx, 1
inc esi
and cl, 0x7c
inc esi
mov dword [esp + 0x38], ebx
and byte [esp + 0x38], 0x38
sar ebx, 6
mov edx, dword [esp + 0x38]
shl dl, 2
or cl, bl
mov byte [esp + 0x38], dl
mov edx, dword [esp + 0x10]
sar edx, 3
or byte [esp + 0x38], dl
mov dl, byte [esp + 0x38]
mov byte [esi - 2], dl
mov byte [esi - 1], cl
jmp 0x10008c5a
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
and edi, 3
mov edx, dword [edx + edi*8]
mov edi, dword [esp + 0x10]
sar edx, 3
sub edx, 0x10
add edi, edx
cmp edi, 0xff
jl 0x10008bbf
mov edi, 0xff
test edi, edi
jg 0x10008bc5
xor edi, edi
add ebx, edx
mov dword [esp + 0x10], edi
cmp ebx, 0xff
jl 0x10008bd8
mov ebx, 0xff
test ebx, ebx
jg 0x10008bde
xor ebx, ebx
add edx, ecx
cmp edx, 0xff
jl 0x10008bed
mov edx, 0xff
test edx, edx
jg 0x10008bf3
xor edx, edx
shr ebx, 3
mov ecx, dword [esp + 0x10]
shr ecx, 6
and bl, 0x1c
and cl, 3
and dl, 0xe0
or cl, bl
inc esi
or cl, dl
mov byte [esi - 1], cl
jmp 0x10008c5a
mov dl, byte [esp + 0x10]
mov byte [esi], dl
mov byte [esi + 1], bl
mov byte [esi + 2], cl
add esi, dword [eax + 0x7b8]
jmp 0x10008c5a
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
and edi, 3
mov edi, dword [edx + edi*8]
mov dl, 4
cmp dword [esp + 0x10], edi
jg 0x10008c3c
xor dl, dl
cmp ecx, edi
setg cl
or dl, cl
mov cl, 2
cmp ebx, edi
jg 0x10008c4b
xor cl, cl
or dl, cl
xor ecx, ecx
mov cl, dl
test ecx, ecx
je 0x10008c58
or ecx, 8
mov byte [esi], cl
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
add dword [esp + 0x30], 4
mov edi, dword [ecx]
mov edx, dword [esp + 0x24]
xor edi, 0xffff8003
and edi, 0xfffc
shr edi, 2
add ebx, edi
add edx, edi
lea ecx, [ebp + edi]
mov dword [esp + 0x2c], edx
test bh, 0xc0
je 0x10008ca0
and ebx, 0x8000
cmp ebx, 1
sbb ebx, ebx
and ebx, 0xff
jmp 0x10008ca3
sar ebx, 6
test ch, 0xc0
je 0x10008cbb
and ecx, 0x8000
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff
jmp 0x10008cbe
sar ecx, 6
test byte [esp + 0x2d], 0xc0
je 0x10008ce0
mov edx, dword [esp + 0x2c]
and edx, 0x8000
cmp edx, 1
sbb edx, edx
and edx, 0xff
mov dword [esp + 0x2c], edx
jmp 0x10008ce5
sar dword [esp + 0x2c], 6
mov edx, dword [eax + 0x7b8]
cmp edx, 1
je 0x10008d3d
cmp edx, 4
je 0x10008db5
cmp edx, 0xa
je 0x10008dc9
sar ebx, 3
inc esi
inc esi
mov dword [esp + 0x38], ecx
and byte [esp + 0x38], 0x38
sar ecx, 6
mov edx, dword [esp + 0x38]
shl dl, 2
mov byte [esp + 0x38], dl
or byte [esp + 0x38], bl
mov dl, byte [esp + 0x38]
mov byte [esi - 2], dl
mov edx, dword [esp + 0x2c]
shr edx, 1
and dl, 0x7c
or dl, cl
mov byte [esi - 1], dl
jmp 0x10008e0e
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
and edi, 0x1c
mov edx, dword [edi + edx]
sar edx, 3
lea edi, [edx + ebx - 0x10]
sub edx, 0x10
cmp edi, 0xff
jl 0x10008d62
mov edi, 0xff
test edi, edi
jg 0x10008d68
xor edi, edi
add ecx, edx
mov dword [esp + 0x10], edi
cmp ecx, 0xff
jl 0x10008d7b
mov ecx, 0xff
test ecx, ecx
jg 0x10008d81
xor ecx, ecx
add edx, dword [esp + 0x2c]
cmp edx, 0xff
jl 0x10008d92
mov edx, 0xff
test edx, edx
jg 0x10008d98
xor edx, edx
shr ecx, 3
mov ebx, dword [esp + 0x10]
shr ebx, 6
and cl, 0x1c
and bl, 3
and dl, 0xe0
or bl, cl
inc esi
or bl, dl
mov byte [esi - 1], bl
jmp 0x10008e0e
mov dl, byte [esp + 0x2c]
mov byte [esi], bl
mov byte [esi + 1], cl
mov byte [esi + 2], dl
add esi, dword [eax + 0x7b8]
jmp 0x10008e0e
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
and edi, 0x1c
mov edi, dword [edi + edx]
mov dl, 4
cmp ebx, edi
jg 0x10008ddf
xor dl, dl
cmp dword [esp + 0x2c], edi
setg bl
or dl, bl
cmp ecx, edi
mov cl, 2
jg 0x10008df0
xor cl, cl
or dl, cl
xor ecx, ecx
mov cl, dl
test ecx, ecx
je 0x10008dfd
or ecx, 8
test byte [esp + 0x44], 1
je 0x10008e0c
shl cl, 4
or byte [esi], cl
inc esi
jmp 0x10008e0e
mov byte [esi], cl
add dword [esp + 0x44], 2
add dword [esp + 0x3c], 8
inc dword [esp + 0x1c]
cmp dword [esp + 0x3c], 0x24
jl 0x10008a71
test byte [esp + 0x40], 1
jne 0x10008e38
sub dword [esp + 0x18], 0x20
sub dword [esp + 0x14], 0x20
add dword [esp + 0x48], 4
add dword [esp + 0x34], 0x20
inc dword [esp + 0x40]
cmp dword [esp + 0x34], 0x1002d768
jb 0x10008689
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x3c
ret