Function at 0x49eab0
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x38
push ebp
push edi
mov edi, dword [esp + 0x4c]
or ebp, 0xffffffff
mov dword [esp + 0x14], ecx
mov ecx, edi
call fcn.00484c30
test eax, eax
jne 0x49ead3
pop edi
pop ebp
add esp, 0x38
ret 0x10
mov eax, dword [esp + 0x48]
push ebx
push esi
xor esi, esi
movzx ebx, word [eax + 0x10]
movzx eax, byte [eax + 0xd]
not ebx
shr ebx, 9
and ebx, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], ebx
cmp eax, 0x21
ja case.0x49eafc.19
jmp dword [eax*4 + 0x49fa10]
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
mov dword [esp + 0x24], ebx
push edx
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebp, dword [esp + 0x24]
mov ecx, edi
mov ebx, eax
xor esi, esi
call fcn.00484c30
test eax, eax
jle 0x49eb68
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b20
test eax, eax
mov ecx, edi
setne al
mov byte [ebx + esi], al
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49eb40
mov edi, 1
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
add esi, 0xc
imul edi, eax
mov dword [ecx + 4], eax
mov dword [ecx], ebx
mov eax, dword [esi + 8]
and eax, 0x3fffffff
cmp dword [esi + 4], eax
jne 0x49eba1
push 8
push esi
push 0x7d8950
call fcn.00467c00
add esp, 0xc
mov edx, dword [esi + 4]
mov ecx, dword [esi]
lea eax, [edx + 1]
mov dword [esi + 4], eax
mov dword [ecx + edx*8], ebx
mov dword [ecx + edx*8 + 4], edi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
cmp byte [eax + 0xc], 0x16
jne 0x49ebd8
mov eax, dword [esp + 0x1c]
cmp dword [eax + 4], 0
jne 0x49ebd1
or ebp, 0x80000000
mov eax, dword [esp + 0x4c]
mov dword [eax + 8], ebp
mov eax, esi
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x38
ret 0x10
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
mov dword [esp + 0x24], ebx
push edx
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebp, dword [esp + 0x24]
mov ecx, edi
mov ebx, eax
xor esi, esi
call fcn.00484c30
test eax, eax
jle 0x49eb68
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b20
mov byte [ebx + esi], al
mov ecx, edi
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49ec25
jmp 0x49eb68
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
mov dword [esp + 0x24], ebx
push edx
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebp, dword [esp + 0x24]
mov ecx, edi
mov ebx, eax
xor esi, esi
call fcn.00484c30
test eax, eax
jle 0x49eb68
nop
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b20
mov byte [ebx + esi], al
mov ecx, edi
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49ec90
jmp 0x49eb68
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
mov dword [esp + 0x24], ebx
push edx
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebp, dword [esp + 0x24]
mov ecx, edi
mov ebx, eax
xor esi, esi
call fcn.00484c30
test eax, eax
jle 0x49eb68
nop dword [eax]
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b20
mov byte [ebx + esi], al
mov ecx, edi
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49ed00
jmp 0x49eb68
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx + ebx]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
call fcn.00484c30
test eax, eax
jle 0x49ed94
nop
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b20
mov word [ebx + esi*2], ax
mov ecx, edi
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49ed70
mov edi, 2
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx + ebx]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
call fcn.00484c30
test eax, eax
jle 0x49ed94
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b20
mov word [ebx + esi*2], ax
mov ecx, edi
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49ede5
mov edi, 2
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx*4]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
and edx, 3
lea ebp, [edx + eax]
sar ebp, 2
call fcn.00484c30
test eax, eax
jle 0x49ee84
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b20
mov dword [ebx + esi*4], eax
mov ecx, edi
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49ee61
mov edi, 4
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx*4]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
and edx, 3
lea ebp, [edx + eax]
sar ebp, 2
call fcn.00484c30
test eax, eax
jle 0x49ee84
nop dword [eax]
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b20
mov dword [ebx + esi*4], eax
mov ecx, edi
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49eee0
mov edi, 4
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx*8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
and edx, 7
lea ebp, [edx + eax]
sar ebp, 3
call fcn.00484c30
test eax, eax
jle 0x49ef87
nop dword [eax + eax]
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b30
mov dword [ebx + esi*8], eax
mov ecx, edi
mov dword [ebx + esi*8 + 4], edx
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49ef60
mov edi, 8
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx*8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
and edx, 7
lea ebp, [edx + eax]
sar ebp, 3
call fcn.00484c30
test eax, eax
jle 0x49ef87
nop
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b30
mov dword [ebx + esi*8], eax
mov ecx, edi
mov dword [ebx + esi*8 + 4], edx
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49efe0
mov edi, 8
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx*4]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
and edx, 3
lea ebp, [edx + eax]
sar ebp, 2
call fcn.00484c30
test eax, eax
jle 0x49ee84
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b30
mov dword [ebx + esi*4], eax
mov ecx, edi
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49f063
mov edi, 4
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx*4]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
and edx, 3
lea ebp, [edx + eax]
sar ebp, 2
call fcn.00484c30
test eax, eax
jle 0x49ee84
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b40
fstp dword [ebx + esi*4]
mov ecx, edi
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49f0e2
mov edi, 4
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx + ebx]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
call fcn.00484c30
test eax, eax
jle 0x49ed94
nop word [eax + eax]
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b40
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, edi
sar eax, 0x10
mov word [ebx + esi*2], ax
inc esi
call fcn.00484c30
cmp esi, eax
jl 0x49f160
mov edi, 2
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
mov eax, ebx
shl eax, 4
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
and edx, 0xf
mov dword [esp + 0x10], ebx
lea ebp, [edx + eax]
sar ebp, 4
call fcn.00484c30
test eax, eax
jle 0x49f220
nop dword [eax]
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
push 4
mov ecx, eax
call fcn.00484ba0
mov ecx, edi
lea ebx, [ebx + 0x10]
inc esi
movaps xmm0, xmmword [eax]
movaps xmmword [ebx - 0x10], xmm0
call fcn.00484c30
cmp esi, eax
jl 0x49f1f0
mov ebx, dword [esp + 0x10]
mov edi, 0x10
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
mov eax, ebx
shl eax, 4
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
and edx, 0xf
mov dword [esp + 0x10], ebx
lea ebp, [edx + eax]
sar ebp, 4
call fcn.00484c30
test eax, eax
jle 0x49f220
nop word [eax + eax]
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
push 4
mov ecx, eax
call fcn.00484ba0
mov ecx, edi
lea ebx, [ebx + 0x10]
inc esi
movaps xmm0, xmmword [eax]
movaps xmmword [ebx - 0x10], xmm0
call fcn.00484c30
cmp esi, eax
jl 0x49f280
mov ebx, dword [esp + 0x10]
mov edi, 0x10
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx + ebx*2]
shl eax, 4
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, 0x2aaaaaab
mov dword [esp + 0x10], ebx
imul dword [esp + 0x24]
sar edx, 3
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
call fcn.00484c30
test eax, eax
jle 0x49f353
lea esi, [ebx + 0x20]
xor ebx, ebx
push ebx
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
push 0xc
mov ecx, eax
call fcn.00484ba0
mov ecx, edi
lea esi, [esi + 0x30]
inc ebx
movaps xmm0, xmmword [eax]
movaps xmmword [esi - 0x50], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi - 0x40], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi - 0x30], xmm0
call fcn.00484c30
cmp ebx, eax
jl 0x49f313
mov ebx, dword [esp + 0x10]
mov edi, 0x30
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx + ebx*2]
shl eax, 4
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, 0x2aaaaaab
mov dword [esp + 0x10], ebx
imul dword [esp + 0x24]
sar edx, 3
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
call fcn.00484c30
test eax, eax
jle 0x49f353
lea esi, [ebx + 0x20]
xor ebx, ebx
push ebx
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
push 0xc
mov ecx, eax
call fcn.00484ba0
mov ecx, edi
lea esi, [esi + 0x30]
inc ebx
movaps xmm0, xmmword [eax]
movaps xmmword [esi - 0x50], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi - 0x40], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi - 0x30], xmm0
call fcn.00484c30
cmp ebx, eax
jl 0x49f3b6
mov ebx, dword [esp + 0x10]
mov edi, 0x30
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx + ebx*2]
shl eax, 4
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, 0x2aaaaaab
mov dword [esp + 0x10], ebx
imul dword [esp + 0x24]
sar edx, 3
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
call fcn.00484c30
test eax, eax
jle 0x49f353
lea esi, [ebx + 0x20]
xor ebx, ebx
nop dword [eax]
push ebx
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
push 0xc
mov ecx, eax
call fcn.00484ba0
mov ecx, edi
lea esi, [esi + 0x30]
inc ebx
movaps xmm0, xmmword [eax]
movaps xmmword [esi - 0x50], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi - 0x40], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi - 0x30], xmm0
call fcn.00484c30
cmp ebx, eax
jl 0x49f460
mov ebx, dword [esp + 0x10]
mov edi, 0x30
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
mov eax, ebx
shl eax, 6
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
cdq
and edx, 0x3f
mov dword [esp + 0x10], ebx
lea ebp, [edx + eax]
sar ebp, 6
call fcn.00484c30
test eax, eax
jle 0x49f548
lea esi, [ebx + 0x20]
xor ebx, ebx
nop dword [eax]
push ebx
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
push 0x10
mov ecx, eax
call fcn.00484ba0
mov ecx, edi
lea esi, [esi + 0x40]
inc ebx
movaps xmm0, xmmword [eax]
movaps xmmword [esi - 0x60], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi - 0x50], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi - 0x40], xmm0
movaps xmm0, xmmword [eax + 0x30]
movaps xmmword [esi - 0x30], xmm0
call fcn.00484c30
cmp ebx, eax
jl 0x49f500
mov ebx, dword [esp + 0x10]
mov edi, 0x40
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + 0x2c]
mov eax, ebx
shl eax, 6
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
xor esi, esi
cdq
and edx, 0x3f
mov dword [esp + 0x10], ebx
lea ebp, [edx + eax]
sar ebp, 6
call fcn.00484c30
test eax, eax
jle 0x49f548
push esi
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00484c90
push 0x10
mov ecx, eax
call fcn.00484ba0
push eax
mov ecx, ebx
call fcn.004a0d10
mov ecx, edi
inc esi
add ebx, 0x40
call fcn.00484c30
cmp esi, eax
jl 0x49f5a2
mov ebx, dword [esp + 0x10]
mov edi, 0x40
jmp 0x49eb6d
lea eax, [esp + 0x28]
mov ecx, edi
push eax
push 0
lea eax, [esp + 0x40]
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b50
mov ecx, dword [esp + 0x1c]
push eax
push dword [esp + 0x54]
call fcn.004a05a0
mov ebx, eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x10], ebx
call fcn.00484690
test ebx, ebx
je case.0x49eafc.0
mov ecx, edi
call fcn.00484c30
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov dword [esp + 0x54], ebx
call fcn.0045e050
push dword [0x884adc]
mov esi, eax
imul esi, ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
mov dword [esp + 0x24], esi
push edx
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [esp + 0x10]
mov ebx, eax
mov ecx, esi
call fcn.0045e050
mov ecx, eax
mov eax, dword [esp + 0x24]
cdq
idiv ecx
mov ecx, esi
mov ebp, eax
mov dword [esp + 0x18], ebp
call fcn.0045e050
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.0045e050
mov ecx, edi
mov esi, eax
call fcn.00484c30
imul esi, eax
push esi
push 0
push ebx
call fcn.0045d830
add esp, 0xc
mov dword [esp + 0x20], 0
mov ecx, edi
call fcn.00484c30
test eax, eax
jle 0x49f718
xor ebp, ebp
nop
test ebp, ebp
jne 0x49f714
mov ecx, dword [esp + 0x10]
call fcn.0045e050
push dword [esp + 0x58]
mov esi, eax
lea ecx, [esp + 0x30]
mov eax, dword [esp + 0x24]
push ecx
push eax
imul esi, eax
mov ecx, edi
lea eax, [esp + 0x4c]
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b50
mov ecx, dword [esp + 0x20]
push eax
lea eax, [esi + ebx]
push eax
call fcn.0049e3f0
mov ebp, eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], ebp
call fcn.00484690
mov esi, dword [esp + 0x20]
mov ecx, edi
inc esi
mov dword [esp + 0x20], esi
call fcn.00484c30
cmp esi, eax
jl 0x49f6b0
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
test edi, edi
jle 0x49ebb3
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
lea esi, [ebx*4]
push edx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x28], esi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov eax, dword [esp + 0x24]
cdq
and edx, 3
mov dword [esp + 0x10], ebx
push esi
push 0
push ebx
lea ebp, [edx + eax]
sar ebp, 2
mov dword [esp + 0x24], ebp
call fcn.0045d830
add esp, 0xc
mov ecx, edi
call fcn.00484c30
test eax, eax
jle 0x49ee84
mov esi, dword [esp + 0x20]
mov ebp, ebx
xor ebx, ebx
lea eax, [esp + 0x20]
mov ecx, edi
push eax
push ebx
lea eax, [esp + 0x48]
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b50
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x20]
push esi
push ebp
push eax
call fcn.004a0d80
lea ecx, [esp + 0x20]
call fcn.00484690
mov ecx, edi
inc ebx
add ebp, 4
call fcn.00484c30
cmp ebx, eax
jl 0x49f795
mov ebx, dword [esp + 0x10]
mov edi, 4
mov ebp, dword [esp + 0x18]
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x24]
lea esi, [ebx*8]
push edx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x28], esi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov eax, dword [esp + 0x24]
cdq
and edx, 7
mov dword [esp + 0x10], ebx
push esi
push 0
push ebx
lea ebp, [edx + eax]
sar ebp, 3
mov dword [esp + 0x24], ebp
call fcn.0045d830
add esp, 0xc
mov ecx, edi
call fcn.00484c30
test eax, eax
jle 0x49ef87
mov esi, dword [esp + 0x20]
mov ebp, ebx
xor ebx, ebx
lea eax, [esp + 0x20]
mov ecx, edi
push eax
push ebx
lea eax, [esp + 0x48]
push eax
call fcn.00484c90
mov ecx, eax
call fcn.00484b50
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x20]
push esi
push ebp
push eax
call fcn.004a0e00
lea ecx, [esp + 0x20]
call fcn.00484690
mov ecx, edi
inc ebx
add ebp, 8
call fcn.00484c30
cmp ebx, eax
jl 0x49f854
mov ebx, dword [esp + 0x10]
mov edi, 8
mov ebp, dword [esp + 0x18]
jmp 0x49eb6d
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x30]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [esi*4]
mov dword [esp + 0x34], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
mov dword [esp + 0x54], eax
xor ebp, ebp
call fcn.00484c30
test eax, eax
jle 0x49f936
mov esi, dword [esp + 0x14]
test esi, esi
jne case.0x49eafc.33
push dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov ecx, edi
push ebx
push 0
push ebp
movzx esi, byte [eax + 0xd]
lea eax, [esp + 0x50]
push eax
call fcn.00484c90
mov ecx, dword [esp + 0x28]
push eax
push esi
mov esi, dword [esp + 0x68]
push esi
call fcn.004a0680
add esi, 4
mov dword [esp + 0x14], eax
mov ecx, edi
mov dword [esp + 0x54], esi
inc ebp
call fcn.00484c30
cmp ebp, eax
jl 0x49f8e5
mov esi, dword [esp + 0x14]
jmp case.0x49eafc.33
xor esi, esi
mov ecx, edi
call fcn.00484c30
push dword [0x884adc]
mov ebx, eax
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esp + 0x28]
push edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x28]
mov ecx, edi
cdq
and edx, 3
mov dword [esp + 0x10], ebx
lea ebp, [edx + eax]
sar ebp, 2
mov dword [esp + 0x18], ebp
call fcn.00484c30
test eax, eax
jle 0x49ee84
mov ebp, ebx
mov ebx, dword [esp + 0x20]
nop
test esi, esi
jne 0x49f9ee
push dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov ecx, edi
push ebx
push 0
push dword [esp + 0x30]
movzx esi, byte [eax + 0xd]
lea eax, [esp + 0x50]
push eax
call fcn.00484c90
mov ecx, dword [esp + 0x28]
push eax
push esi
push ebp
call fcn.004a0680
mov esi, dword [esp + 0x24]
mov ecx, edi
inc esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], esi
add ebp, 4
call fcn.00484c30
cmp esi, eax
mov esi, dword [esp + 0x14]
jl 0x49f9a0
mov ebx, dword [esp + 0x10]
mov edi, 4
mov ebp, dword [esp + 0x18]
jmp 0x49eb6d
pop esi
pop ebx
pop edi
mov eax, 1
pop ebp
add esp, 0x38
ret 0x10