Function at 0x483350
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports
Set thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x154
push ebx
push esi
push edi
push 0x10000
push 0x100000
lea ecx, [esp + 0xc0]
call fcn.0075429f
xor ecx, ecx
mov edx, 4
mov eax, 0x32
lea ebx, [esp + 0x10]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], eax
mov dword [esp + 0x10], ecx
call fcn.00469230
mov edi, eax
xor esi, esi
cmp edi, esi
jl 0x483a88
push esi
push esi
call sub.msvcrt.dll__controlfp
push 0x8001f
push 0xffffffffffffffff
mov dword [esp + 0x30], eax
call sub.msvcrt.dll__controlfp
push 0x30000
push esi
call sub.msvcrt.dll__controlfp
mov eax, dword [ebp + 0x2c]
add esp, 0x18
test eax, 0xcfff0000
jne 0x483a8d
test eax, 0x1000
je 0x483485
test eax, 0x800
jne 0x483a8d
cmp dword [ebp + 0x10], esi
je 0x483492
test al, 0x18
jne 0x483a8d
cmp dword [ebp + 0x30], esi
mov ebx, dword [ebp + 8]
je 0x4837cc
mov ecx, dword [ebx + 4]
cmp ecx, esi
lea edi, [ebx + 4]
mov dword [esp + 0xc], edi
je 0x4834ba
add dword [ecx + 0x10], 0xffffffff
jne 0x4834ba
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [ebx + 8]
cmp ecx, esi
lea eax, [ebx + 8]
mov dword [esp + 0x14], eax
je 0x4834d0
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov eax, dword [esp + 0x14]
mov dword [eax], esi
mov eax, dword [ebx + 0x1c]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx + 0x20]
add esp, 4
push eax
mov dword [ebx + 0x1c], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx + 0x24]
add esp, 4
push eax
mov dword [ebx + 0x20], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx + 0x30]
add esp, 4
push eax
mov dword [ebx + 0x24], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx + 0x28]
add esp, 4
push eax
mov dword [ebx + 0x30], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x2c]
mov dword [ecx], esi
or ecx, 0xffffffff
mov dword [edi], esi
mov edi, dword [ebp + 0x28]
mov dword [ebx + 0xe4], esi
mov dword [ebx + 0xe0], esi
mov dword [ebx + 0xe8], esi
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x2c], esi
mov dword [ebx], edx
mov byte [ebx + 0xcc], 1
mov byte [ebx + 0xce], 0
mov byte [ebx + 0xd0], 0
mov byte [ebx + 0xd1], 0
mov byte [ebx + 0xd2], 1
mov byte [ebx + 0xf8], 0
mov byte [ebx + 0xf9], 0
mov dword [ebx + 0xdc], esi
mov dword [ebx + 0xc4], ecx
mov dword [ebx + 0xc8], ecx
mov cl, byte [ebp + 0x24]
add esp, 4
cmp dword [ebp + 0x1c], esi
mov dword [ebx + 0xfc], esi
mov dword [ebx + 0x110], esi
mov dword [ebx + 0x114], 0x20
mov dword [ebx + 0x100], esi
mov dword [ebx + 0x104], 0x10
mov dword [ebx + 0x108], esi
mov dword [ebx + 0x10c], 8
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x14], eax
mov dword [ebx + 0xb0], esi
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb8], esi
mov dword [ebx + 0xbc], esi
mov dword [ebx + 0xc0], esi
mov byte [ebx + 0xdb], 0
mov dword [ebx + 0x118], esi
mov dword [ebx + 0x11c], esi
mov dword [ebx + 0x120], esi
mov dword [ebx + 0x124], esi
mov dword [ebx + 0x128], esi
mov dword [ebx + 0x12c], esi
mov dword [ebx + 0x130], esi
mov byte [ebx + 0x134], cl
mov byte [ebx + 0xd8], 0
mov byte [ebx + 0x168], 0
mov byte [ebx + 0xda], 1
je 0x4836b0
cmp edi, esi
je 0x48368e
mov eax, dword [ebp + 0x28]
mov edi, 0x42823c
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x483669
or dword [ebx + 0x14], 0x100
mov dword [ebx + 0x10], 0x46580400
jmp 0x483897
mov esi, eax
mov edi, 0x428244
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x48368e
or dword [ebx + 0x14], 0x100
mov dword [ebx + 0x10], 0x46580401
jmp 0x483897
push 2
call fcn.0060e498
test al, al
je 0x4837cc
or dword [ebx + 0x14], 0x100
mov dword [ebx + 0x10], 0x46580200
jmp 0x483897
test al, 0xc0
je 0x483756
lea ecx, [esp + 0x24]
push ecx
push 2
push edi
call fcn.00469110
test eax, eax
jge 0x4836ec
mov edx, edi
push edx
push 0x4599d8
push 0xdb2
xor edi, edi
mov esi, ebx
call fcn.0048c920
add esp, 0xc
mov edi, 0x8876086c
jmp 0x483a95
mov eax, dword [esp + 0x28]
mov ecx, eax
and ecx, 0xffff0000
cmp ecx, 0xfffe0000
je 0x483730
cmp ecx, 0xffff0000
jne 0x483756
test byte [ebp + 0x2c], 0x80
je 0x483756
or dword [ebp + 0x2c], 5
and eax, 0xff00
cmp eax, 0x300
jae 0x483727
mov dword [ebx + 0xc], 0x42832c
jmp 0x483756
mov dword [ebx + 0xc], 0x428314
jmp 0x483756
test byte [ebp + 0x2c], 0x40
je 0x483756
or dword [ebp + 0x2c], 5
and eax, 0xff00
cmp eax, 0x300
jae 0x48374f
mov dword [ebx + 0xc], 0x428294
jmp 0x483756
mov dword [ebx + 0xc], 0x42827c
mov esi, dword [ebx + 0xc]
lea eax, [esp + 0x24]
push eax
push 2
push esi
call fcn.00469110
test eax, eax
jge 0x483770
push esi
jmp 0x4836cc
mov eax, dword [esp + 0x28]
cmp eax, 0xfffe0100
mov ecx, dword [ebp + 0x2c]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], ecx
jne 0x48378b
mov dword [ebx + 0x10], 0xfffe0101
cmp dword [ebx + 0x10], 0xffff0100
jne 0x48379b
mov dword [ebx + 0x10], 0xffff0101
mov eax, dword [ebx + 0x10]
mov edx, eax
and edx, 0xff00
cmp edx, 0x400
jne 0x4837d6
test ecx, 0x20000000
je 0x4837ea
push 0x4599fc
push 0xdb2
xor edi, edi
mov esi, ebx
call fcn.0048c920
add esp, 8
mov edi, 0x8876086c
jmp 0x483a95
test ecx, 0x10000000
je 0x4837ea
push 0x459a3c
push 0xdb1
jmp 0x4837c0
cmp eax, 0x54580100
ja 0x483812
je 0x48388e
cmp eax, 0x47530400
jb 0x483897
cmp eax, 0x47530401
jbe 0x48388e
jmp 0x483897
cmp eax, 0xffff0104
ja 0x483884
cmp eax, 0xffff0101
jae 0x483830
cmp eax, 0xfffe0400
jb 0x483897
cmp eax, 0xfffe0401
jbe 0x48388e
jmp 0x483897
xor edi, edi
test ecx, 0x1000
mov esi, ebx
je 0x483857
push 0x459a6c
push 0xde9
call fcn.0048c9a0
add esp, 8
mov dword [ebx + 0x10], 0xffff0200
jmp 0x483897
push 0x459a98
push 0xdd3
call fcn.0048c920
push 0x459af0
push 0xdd3
xor edi, edi
call fcn.0048c920
add esp, 0x10
mov edi, 0x80004001
jmp 0x483a95
add eax, 0xfc00
cmp eax, 1
ja 0x483897
or ecx, 0x100
mov dword [ebx + 0x14], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov bl, byte [ebp + 0x24]
push eax
mov eax, dword [ecx + 0x10]
call fcn.0050bcf0
mov edi, eax
test edi, edi
jl 0x483a92
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x4838fb
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [eax + 0x14]
push edx
mov edx, dword [eax]
or ecx, 0x80000000
push ecx
push edx
lea ecx, [esp + 0xdc]
call fcn.0046b240
mov ecx, eax
call fcn.0046b2f0
lea ecx, [esp + 0xd0]
mov edi, eax
call fcn.0046b280
test edi, edi
jl 0x483a92
jmp 0x483901
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
lea edx, [esp + 0xb8]
push edx
call fcn.004ddff0
lea eax, [esp + 0xb8]
push eax
call fcn.004ce810
call fcn.00469330
lea ecx, [esp + 0x30]
mov dword [eax + 0x11c], ecx
mov dword [eax + 0x120], 8
xor ecx, ecx
mov edx, 4
lea esi, [esp + 0x38]
nop
mov dword [esi], edx
add ecx, 1
add edx, 4
add esi, 0x10
cmp ecx, dword [eax + 0x120]
jb 0x483940
mov ebx, dword [ebp + 8]
call fcn.00483c40
mov edi, eax
test edi, edi
jl 0x483a95
mov eax, ebx
call fcn.0048c5d0
mov edi, eax
test edi, edi
jl 0x483a95
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x48398b
push eax
mov edx, ebx
push edx
call fcn.004844e0
jmp 0x483a3f
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x4839e7
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
test eax, eax
je 0x4839bf
cmp dword [eax + 4], 4
jne 0x4839bf
mov eax, dword [eax + 0x38]
lea edx, [esp + 0x18]
push edx
push 0x420dc8
push ecx
push eax
mov ecx, ebx
call fcn.0048c100
test eax, eax
jne 0x4839e0
mov ecx, dword [ebp + 0x14]
push ecx
push 0x459b34
push 0xdad
xor edi, edi
mov esi, ebx
call fcn.0048c920
add esp, 0xc
mov edi, 0x80004005
jmp 0x483a95
mov byte [esp + 0xc], 0
jmp 0x483a20
mov edx, dword [ebp + 0x18]
lea ecx, [ebp + 0x14]
push ecx
push edx
mov esi, ebx
lea edx, [esp + 0x20]
mov ecx, esi
call fcn.0048c510
test eax, eax
jne 0x483a1b
push 0x459b50
push 0xdad
xor edi, edi
call fcn.0048c920
add esp, 8
mov edi, 0x80004005
jmp 0x483a95
mov byte [esp + 0xc], 1
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 0x20]
push ecx
mov ecx, dword [esp + 0x1c]
push 1
push 0
push edx
mov edx, dword [ebp + 0x14]
push ecx
push eax
push edx
mov eax, ebx
push eax
call fcn.00487dc0
mov edi, eax
test edi, edi
jl 0x483a95
mov eax, ebx
cmp byte [eax + 0xce], 0
je 0x483a57
mov edi, 0x80004005
jmp 0x483a95
push eax
call fcn.0048c730
mov edi, eax
test edi, edi
jl 0x483a95
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
lea eax, [esp + 0x1c]
push eax
call edx
mov edi, eax
test edi, edi
jl 0x483a95
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x30]
mov dword [ecx], eax
xor edi, edi
jmp 0x483a95
mov ebx, dword [ebp + 8]
jmp 0x483a97
mov edi, 0x8876086c
mov ebx, dword [ebp + 8]
xor esi, esi
call sub.msvcrt.dll__clearfp
mov edx, dword [esp + 0x20]
push 0xb001f
push edx
call sub.msvcrt.dll__controlfp
add esp, 8
cmp dword [ebp + 0x10], esi
jne 0x483ac8
mov ecx, dword [ebx + 4]
cmp ecx, esi
je 0x483ac8
add dword [ecx + 0x10], 0xffffffff
jne 0x483ac8
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [ebx + 8]
cmp ecx, esi
mov dword [ebx + 4], esi
je 0x483ada
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov eax, dword [ebx + 0x1c]
push eax
mov dword [ebx + 8], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov ecx, dword [ebx + 0x20]
add esp, 4
push ecx
mov dword [ebx + 0x1c], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov edx, dword [ebx + 0x24]
add esp, 4
push edx
mov dword [ebx + 0x20], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx + 0x28]
add esp, 4
push eax
mov dword [ebx + 0x24], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov dword [ebx + 0x28], esi
mov eax, dword [0x776138]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
add esp, 4
cmp eax, esi
jge 0x483b2c
xor eax, eax
jmp 0x483b2f
push eax
call ebx
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov eax, dword [0x776138]
cmp eax, esi
jge 0x483b44
xor eax, eax
jmp 0x483b47
push eax
call ebx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], esi
mov eax, dword [0x776138]
cmp eax, esi
jl 0x483b71
push eax
call ebx
cmp eax, esi
je 0x483b6c
mov dword [eax + 0x11c], esi
mov dword [eax + 0x120], esi
mov eax, dword [0x776138]
cmp dword [esp + 0x10], esi
je 0x483ba8
cmp eax, esi
jge 0x483b7f
xor eax, eax
jmp 0x483b82
push eax
call ebx
add dword [eax + 0x124], 0xffffffff
cmp dword [eax + 0x124], esi
jg 0x483ba8
push eax
call sub.msvcrt.dll_free
mov ecx, dword [0x776138]
add esp, 4
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
lea ebx, [esp + 0xb0]
mov dword [esp + 0x10], 7
mov eax, dword [ebx - 0x10]
sub ebx, 0x10
cmp eax, esi
je 0x483bd4
mov edx, dword [eax]
push eax
mov dword [ebx], edx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx]
add esp, 4
cmp eax, esi
jne 0x483bc1
sub dword [esp + 0x10], 1
mov dword [ebx + 4], esi
jns 0x483bb7
lea ecx, [esp + 0xb8]
call fcn.00751587
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c