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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x138
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], edi
cmp dword [edi + 0xc0], 0
je 0x503d64
mov edx, dword [edi + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [edx + 0xf8]
jle 0x503d64
push dword [0x884adc]
mov dword [esp + 0xc], 0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 0xc]
lea edx, [eax + eax*2]
shl edx, 4
add edx, 0x7f
mov dword [esp + 0xc], ecx
and edx, 0xffffff80
mov dword [esp + 0x1c], edx
lea edi, [ecx + edx]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x14]
cmp edx, dword [esi + 8]
jg 0x503bb8
lea edi, [ecx + edx]
cmp edi, dword [esi + 0x10]
mov edi, dword [esp + 0x14]
ja 0x503bb8
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], edx
jmp 0x503bc9
push edx
mov ecx, esi
call fcn.0046a3c0
mov ecx, eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc], ecx
test eax, eax
jle 0x503c17
mov esi, dword [ebp + 0x10]
mov edx, ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
nop word [eax + eax]
mov ecx, dword [edi + 0xc]
mov eax, dword [esi]
cmp eax, dword [ecx + 0x20]
jne 0x503bf0
mov dword [esp + 8], esi
jmp 0x503c06
push edx
push dword [ebp + 0x1c]
mov ecx, edi
push esi
push dword [ebp + 0x18]
push dword [ebp + 8]
call fcn.00503db0
mov edx, dword [esp + 0x18]
add edx, 0x30
add esi, 0x1c
sub dword [esp + 0x10], 1
mov dword [esp + 0x18], edx
jne 0x503be0
mov ecx, dword [edi + 0xc0]
call fcn.0064eb00
mov ecx, dword [edi + 0xc]
mov dword [esp + 0xb8], 0
mov dword [esp + 0x114], 0
lea eax, [ecx + 0x1e0]
mov dword [esp + 0x134], eax
push dword [ecx + 0x78]
lea ecx, [esp + 0xb4]
call fcn.004fd5b0
mov ecx, dword [edi + 0xc]
push dword [ecx + 0x1d0]
lea eax, [ecx + 0x1e0]
push eax
lea eax, [ecx + 0x1f0]
push eax
lea ecx, [esp + 0x3c]
call fcn.004fd630
cmp dword [ebp + 0x14], 0
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x130], edi
mov eax, dword [ecx + 0x78]
movss xmm0, dword [eax + 0xc]
movss dword [esp + 0x138], xmm0
mov dword [esp + 0x13c], 0x8cde50
mov dword [esp + 0x20], ecx
jle 0x503ccc
mov esi, dword [esp + 0xc]
mov edi, dword [ebp + 0x14]
nop
push esi
lea eax, [esp + 0x24]
push 0
push eax
call fcn.00532280
add esp, 0xc
add esi, 0x30
sub edi, 1
jne 0x503cb0
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x114], 0
mov esi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
je 0x503cf8
push dword [0x884adc]
call esi
push 0x200
push dword [esp + 0x118]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x503d20
push dword [ebp + 0x1c]
mov eax, dword [ecx + 8]
push dword [ecx]
add eax, dword [ecx + 4]
push dword [ebp + 0x18]
push eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp + 8]
lea eax, [ecx + eax*4]
mov ecx, edi
push eax
call fcn.00500520
push dword [0x884adc]
call esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
lea esi, [ecx + 0xf]
and esi, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x503d53
lea ecx, [esi + edx]
cmp ecx, dword [eax + 0xc]
jne 0x503d53
cmp dword [eax + 0x14], edx
je 0x503d53
mov dword [eax + 0xc], edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
push esi
push edx
mov ecx, eax
call fcn.0046a590
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp + 0x14]
mov dword [esp + 8], eax
test eax, eax
jle 0x503d9f
mov esi, dword [ebp + 0x10]
add esi, 4
push dword [ebp + 0x1c]
mov eax, dword [esi + 4]
push dword [esi - 4]
add eax, dword [esi]
push dword [ebp + 0x18]
mov ecx, dword [ebp + 8]
push eax
mov eax, dword [esi + 8]
lea eax, [ecx + eax*4]
mov ecx, edi
push eax
call fcn.00500520
sub dword [esp + 8], 1
lea esi, [esi + 0x1c]
jne 0x503d75
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18