Function at 0x10030211
Capabilities:
Set thread local storage value

Disassembly:
mov eax, 0x10061655
call fcn.100600a0
sub esp, 0x170
push ebx
push esi
push edi
mov eax, ecx
mov dword [ebp - 0x10], esp
xor ebx, ebx
mov byte [ebp - 0x64], dl
mov dword [ebp - 0x20], eax
test dl, dl
je 0x1003044a
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], ebx
mov edi, dword [ebp + 0x20]
mov dword [ebp - 4], ebx
cmp dword [edi + 0x10], ebx
je 0x1003042c
push 0x2e
pop eax
push 2
mov dword [ebp - 0x48], 0xc604c100
mov ecx, ebx
mov word [ebp - 0x44], 0x79cd
mov byte [ebp - 0x42], 0x53
mov word [ebp - 0x40], ax
pop esi
cmp esi, 2
jne 0x10030283
push 5
pop ecx
push ecx
pop esi
jmp 0x100302ac
movzx edx, byte [ebp + esi - 0x47]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x4a]
movzx ecx, word [ebp + eax*2 - 0x40]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x48]
add ecx, edx
mov word [ebp + eax*2 - 0x40], cx
mov ecx, ebx
add esi, 2
cmp esi, 7
jb 0x10030277
xor eax, eax
mov dword [ebp - 0x100], 7
mov word [ebp - 0x3e], ax
lea ecx, [ebp - 0x114]
mov word [ebp - 0x114], ax
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 0x104], ebx
call fcn.1000936f
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 1
push eax
mov edx, edi
lea ecx, [ebp - 0x7c]
call fcn.1002f310
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 3
call fcn.10004a5c
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x7c]
push 0x18
cdq
pop ecx
idiv ecx
mov dword [ebp - 0x40], ebx
test eax, eax
jne 0x100303f7
push 0x2d
pop eax
push 2
mov dword [ebp - 0x38], 0xd101dd00
mov ecx, ebx
mov word [ebp - 0x50], ax
pop esi
cmp esi, 2
jne 0x1003033b
push esi
pop ecx
jmp 0x10030364
movzx edx, byte [ebp + esi - 0x37]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x3a]
movzx ecx, word [ebp + eax*2 - 0x50]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x38]
add ecx, edx
mov word [ebp + eax*2 - 0x50], cx
mov ecx, ebx
add esi, 2
cmp esi, 4
jb 0x10030332
xor eax, eax
mov dword [ebp - 0x118], 7
mov word [ebp - 0x4e], ax
lea ecx, [ebp - 0x12c]
mov word [ebp - 0x12c], ax
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 0x11c], ebx
call fcn.1000936f
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 4
push eax
mov edx, edi
lea ecx, [ebp - 0x160]
call fcn.1002f310
pop ecx
mov esi, eax
lea eax, [ebp - 0x7c]
cmp eax, esi
je 0x100303da
mov ecx, eax
call fcn.10034015
mov ecx, dword [esi]
mov dword [ebp - 0x7c], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0x78], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x74], eax
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
lea ecx, [ebp - 0x160]
call fcn.10034015
push ebx
push 1
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 3
call fcn.10004a5c
push 1
lea eax, [ebp - 0xcc]
mov edx, 0x2a89
push eax
push 0x590d
push 1
push 0x6a7b
push 1
lea ecx, [ebp - 0x7c]
call fcn.1002f65c
add esp, 0x18
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x7c]
call fcn.10034015
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0xcc]
push ecx
mov ecx, eax
call fcn.10033dbf
lea ecx, [ebp - 0xcc]
call fcn.100340a5
jmp 0x10030c52
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x18], ebx
jmp 0x10030482
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x154], 0xa8eac8b1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10030471
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], bl
je 0x100304b6
push ebx
push 0x6f21
push 0x5fd3
push 1
push 0x5876
push 1
mov edx, 0x25b0
mov ecx, 0x33f
call fcn.1002f65c
add esp, 0x18
mov dword [ebp - 0x18], ebx
jmp 0x100304cc
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x154], 0xfffffff7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x100304bb
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xb0], ebx
push ecx
push ecx
mov dword [ebp - 4], 6
lea eax, [ebp - 0xdc]
push 0x3922
mov dword [ebp - 0xdc], 1
mov dl, 1
push eax
mov ecx, 0x2baf
mov dword [ebp - 0x1c], 0xfffffff8
call fcn.1002f467
push 1
push 0x6412
call fcn.1002f0fe
mov eax, dword [edi + 0x10]
add esp, 0x18
cmp dword [edi + 0x14], 8
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x8c], ecx
jb 0x1003053c
mov edi, dword [edi]
push eax
push ebx
push edi
mov ecx, esi
call fcn.100096eb
mov esi, ebx
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x4c], eax
cmp esi, 0xffffffff
je 0x100308f0
cmp esi, dword [ebp - 0x8c]
jae 0x100308f0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x88], 0xa2ae
mov dword [ebp - 0x24], 5
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x18], 0x489e
cmp dword [ebp - 0x18], 0x4c6a
jle 0x100305e4
mov esi, ebx
mov edi, ebx
mov eax, esi
lea ecx, [ebp - 0x178]
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
call fcn.10001a85
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100305b1
mov eax, dword [eax]
push eax
call fcn.10049603
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x178]
call fcn.100048ea
inc edi
cmp edi, 0x3281
jl 0x10030592
inc esi
cmp esi, 0x6d5f
jl 0x10030590
push ebx
push 0x188a
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov dword [ebp - 0x28], 0x153413f0
cmp dword [ebp - 0x18], 0x44da
jge 0x100305ff
push str.fsa_zqe_gcprpuvt
call fcn.10049603
pop ecx
mov dword [ebp - 4], 6
mov dword [ebp - 0x1c], 0x7fb
mov dword [ebp - 0x28], 0x4e33
cmp dword [ebp - 0x28], 0x5040
jle 0x10030698
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x80], 0x6b32
mov esi, ebx
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0x18], esi
mov edi, esi
mov esi, 0x5542
mov eax, ebx
mov ecx, 0x1007bb98
xor eax, edi
cdq
push edx
push eax
call fcn.100042e3
dec edi
dec esi
jne 0x10030642
mov esi, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x7b33
jl 0x1003063b
mov edi, dword [ebp - 0x84]
add ebx, edi
dec dword [ebp - 0x80]
push 0
mov dword [ebp - 0x94], ebx
pop ebx
jne 0x10030630
inc edi
mov dword [ebp - 0x84], edi
cmp edi, 0x3468
jl 0x10030623
push 1
push 0x1c4b
call dword [sym.imp.USER32.dll_EnableWindow]
mov byte [ebp - 4], 9
cmp dword [ebp - 0x28], 0x4d85
jge 0x100306b4
mov edx, str.yjbxdpwwc_lcz_zafqeopmo_tblyhcyv_zmwvpra_sguljctp_frsszmxh_qqehl_ubbte_enbnnhdzu_klmg_xttrbfgb_uts_pswa
mov ecx, 0x1007bb98
call fcn.100067dc
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x18]
mov dword [ebp - 4], 6
mov dword [ebp - 0x18], ebx
jmp 0x10030703
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xec], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x100306f6
mov dword [ebp - 0x18], ebx
jmp 0x1003071f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x148], 0x1d847576
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1003070e
mov dword [ebp - 0x18], ebx
jmp 0x1003073b
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xec], 0x83c7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1003072a
cmp dword [ebp - 0x88], ebx
je 0x10030767
mov eax, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0xe4]
cmp dword [ebp - 0x24], ebx
je 0x10030767
mov eax, ebx
jmp 0x1003076a
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
xor edx, edx
mov eax, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x28], ebx
xor ecx, ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x28], 0x6aac8953
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
sub edx, eax
mov eax, dword [ebp - 0x1c]
cmp edx, eax
mov eax, dword [ebp - 0x4c]
setge cl
mov dword [ebp - 0x144], ecx
cmp eax, 0xffffffff
jne 0x10030a27
push 0x341d
push ebx
lea eax, [ebp - 0x58]
mov edx, esi
push 0x2037
push eax
lea ecx, [ebp - 0xb8]
call fcn.10032bef
add esp, 0x10
mov dword [ebp - 0xd4], 0x80d416db
lea ecx, [ebp - 0xa0]
push 3
call fcn.10004595
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xac]
mov dword [ebp - 0xc0], 0x6c715341
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], 0xfffffffb
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], 0xd0d1d847
mov dword [ebp - 0x1c], 0xeb236728
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x1c], 0x3585ca25
mov dword [ebp - 0x1c], 0x51fe511b
push 1
call fcn.10004595
xor edx, edx
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x18], ebx
inc edx
cmp dword [ebp - 0x18], 3
jge 0x10030856
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x18]
jmp 0x1003083f
mov dword [ebp - 0x18], ebx
jmp 0x1003086a
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x1003085b
lea eax, [ebp - 0xa0]
push eax
sub esp, 0x14
lea edx, [ebp - 0xd4]
lea ecx, [ebp - 0xc0]
call fcn.100314c5
add esp, 0x18
lea eax, [ebp - 0xac]
push ebx
push eax
push ecx
call fcn.1002f421
add esp, 0xc
cmp dword [ebp - 0xac], 0
je 0x100308c5
push dword [ebp - 0xac]
call fcn.100497d9
pop ecx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
mov byte [ebp - 4], 6
cmp dword [ebp - 0xa0], 0
je 0x100308f0
push dword [ebp - 0xa0]
call fcn.100497d9
pop ecx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x30], 0x21f90ef3
lea eax, [ebp - 0x30]
push 0x450f
push ecx
mov dword [ebp - 0x3c], 0xfffffff8
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x2c], 0x51fa4c82
push ecx
mov dword [ebp - 0x5c], 1
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x60], 0xb1c2fbf3
push ebx
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0xd0], 0xb8877e47
push eax
call fcn.10030cf1
add esp, 0x14
cmp dword [ebp - 0x30], ebx
je 0x10030949
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
neg edx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x5c]
sbb edx, edx
neg edx
xor ecx, ecx
neg edx
cmp edx, eax
setle cl
cmp dword [ebp - 0x2c], ecx
jg 0x1003096e
cmp dword [ebp - 0x3c], ebx
jne 0x10030971
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
xor edx, edx
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x30]
cmp eax, ecx
mov eax, dword [ebp - 0x30]
setg dl
xor ecx, ecx
cmp eax, edx
setg cl
cmp ecx, 0xfffc
sbb eax, eax
inc eax
mov dword [ebp - 0x60], eax
je 0x10030a96
mov dword [ebp - 0x20], 0x4840
cmp dword [ebp - 0x20], 0x4a30
jle 0x100309d9
mov esi, ebx
mov edi, ebx
mov ebx, 0x2dc3
mov eax, edi
mov ecx, 0x1007bb98
cdq
push edx
push eax
call fcn.100042e3
add edi, esi
dec ebx
jne 0x100309b6
inc esi
cmp esi, 0xdd1
jl 0x100309af
call dword [sym.imp.KERNEL32.dll_GetACP]
push ecx
push ecx
push 0x4fec
xor dl, dl
mov ecx, 0x7230
call fcn.10031db8
add esp, 0xc
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x20], 0x44c4
jge 0x10030a0b
mov edx, str.ndmsicq_xvbxp_wenugbh_pkgwqgooj_cwshv_vgfgnoep_zqsssfif_hoy_obhm_ajix
mov ecx, 0x1007bb98
call fcn.100067dc
push 1
push 0x1e05
push ecx
mov dword [ebp - 4], 6
call fcn.1002f421
add esp, 0xc
jmp 0x10030c35
cmp eax, dword [ebp - 0x58]
je 0x10030a59
mov edx, 0x7701
xor cl, cl
call fcn.10031e06
push ebx
lea eax, [ebp - 0x4c]
mov edx, 0x2c9
push eax
push esi
lea eax, [ebp - 0xb8]
push eax
push ecx
lea ecx, [ebp - 0x58]
call fcn.1002f39a
mov eax, dword [ebp - 0x4c]
add esp, 0x14
mov esi, dword [ebp - 0x20]
add esi, eax
cmp dword [edi + 0x14], 8
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x58], esi
jb 0x10030a6c
mov edi, dword [edi]
mov ecx, dword [ebp + 0x18]
push eax
push esi
push edi
call fcn.100096eb
jmp 0x1003054b
mov dword [ebp - 0x24], 0x6054615
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x54], 0xafff74b7
mov dword [ebp - 0x1c], 0xe45104f3
push 3
call fcn.10004595
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x12c]
push dword [ebp - 0x90]
movdqa xmm0, xmmword [0x1006f1a0]
lea ecx, [ebp - 0x70]
push eax
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x70], ebx
push eax
push ebx
movdqu xmmword [ebp - 0x13c], xmm0
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call fcn.10006d4a
push ebx
push 0x50f7
lea edx, [ebp - 0xf8]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xfc]
call fcn.100313d9
imul eax, dword [ebp - 0x24], 0x46b4
pop ecx
pop ecx
test eax, eax
je 0x10030b39
mov eax, dword [ebp - 0x54]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], 0xa6825d82
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x5c]
test eax, eax
setg cl
mov dword [ebp - 0x54], ecx
mov ecx, 0xbb70
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x60]
sub ecx, eax
je 0x10030b91
push ebx
push ebx
lea eax, [ebp - 0x70]
mov dword [ebp - 0x1c], 0xe10b09ed
push eax
push 0x4cb2
mov dword [ebp - 0x1c], 0x9b5f814d
mov edx, 0x66fc
push 1
mov ecx, 0x2039
mov dword [ebp - 0x1c], 0x3d3c4855
call fcn.10031b5c
add esp, 0x14
jmp 0x10030bfd
push 1
push ebx
push 0x909
push 0x662e
push 1
mov edx, 0xd70
mov dword [ebp - 0xd8], 0x45fe6ee0
lea ecx, [ebp - 0x54]
call fcn.10031b5c
add esp, 0x14
lea eax, [ebp - 0xd0]
lea edx, [ebp - 0x60]
push 1
push 0x4036
push eax
lea eax, [ebp - 0x5c]
push eax
push 0x6ee
push 0x2e48
push ecx
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x70]
push eax
push 0xe73
push ecx
lea ecx, [ebp - 0x2c]
call fcn.10031223
add esp, 0x30
cmp dword [ebp - 0x70], 0
mov dword [ebp - 0x24], 0x4c718fe3
je 0x10030c1c
push dword [ebp - 0x70]
call fcn.100497d9
pop ecx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov byte [ebp - 4], 6
cmp dword [ebp - 0xf8], 0
je 0x10030c35
push dword [ebp - 0xf8]
call fcn.100497d9
pop ecx
mov ecx, dword [ebp - 0x90]
lea eax, [ebp - 0xb8]
push eax
call fcn.10033b8a
lea ecx, [ebp - 0xb8]
call fcn.10034015
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret