Function at 0x483560
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xe0
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 0xb828]
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x3c]
and eax, 0xfff00000
push edi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x20], eax
jne 0x48359a
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, ebx
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax]
mov edi, ecx
and edi, 0xfffff
xor edx, edx
div edi
and ecx, 0xfff00000
mov dword [ebp - 0x18], edi
cmp ecx, 0x50200000
mov ecx, dword [ebp - 0x20]
mov edi, eax
mov dword [ebp - 0x14], edi
je 0x4835d2
cmp ecx, 0x70800000
je 0x4835d2
xor dl, dl
jmp 0x4835d4
mov dl, 1
mov eax, dword [ebx + 0x3c]
cmp ecx, 0x50000000
sete byte [ebp - 0xc]
and eax, 0xf0000000
mov byte [ebp - 6], 0
cmp eax, 0x60000000
je 0x484380
cmp eax, 0xa0000000
je 0x484380
mov eax, dword [ebx + 0x3c]
call fcn.00509480
test al, al
jne 0x484380
cmp ecx, 0x6a000000
je 0x484380
cmp ecx, 0x50600000
je 0x484380
test dl, dl
jne 0x484360
xor edx, edx
mov dword [ebp - 0x1c], edx
test edi, edi
jbe 0x4836cd
lea edi, [ebp - 0xdc]
mov eax, edi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x30], eax
jmp 0x483650
or eax, 0xffffffff
mov dword [edi], eax
mov dword [edi + 4], eax
xor ecx, ecx
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
cmp dword [ebp - 0x18], ecx
jbe 0x4836b3
mov eax, dword [ebp - 0x30]
add edx, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 4]
add edx, edx
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], edx
cmp byte [ebp - 0xc], 0
mov esi, dword [eax]
je 0x48368a
mov edx, dword [esi + 0x2c]
mov esi, dword [ebp - 0x10]
mov dword [esi], edx
jmp 0x4836a3
mov edx, dword [ebx + 0xc]
mov edx, dword [edx + ecx*4]
mov edx, dword [edx + 0x2c]
add edx, dword [ebp - 0x38]
mov esi, dword [esi + 0x2c]
mov ebx, dword [ebp - 0x3c]
mov dword [ebp + edx*4 - 0xdc], esi
add dword [ebp - 0x10], 4
inc ecx
add eax, 4
cmp ecx, dword [ebp - 0x18]
jb 0x483678
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x30], 0x10
add eax, eax
add eax, eax
add dword [ebp - 0x20], eax
inc edx
add edi, 0x10
mov dword [ebp - 0x1c], edx
cmp edx, dword [ebp - 0x14]
jb 0x483650
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x20
xor ecx, ecx
or eax, ecx
je 0x48386f
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb828]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov edx, dword [edx]
mov edx, dword [edx + 0x98]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
push edx
call eax
mov edi, eax
mov dword [ebp - 0x38], edi
cmp edi, 0xffff
je 0x4838b5
cmp edi, 0xb
je 0x483765
cmp edi, 0x1b
je 0x483765
cmp edi, 0xd
jne 0x483781
mov byte [ebp - 7], 0
mov ebx, 0x551b20
xor esi, esi
jmp 0x483740
mov ecx, ebx
lea eax, [ebp - 0xdc]
call fcn.00483090
test al, al
jne 0x483761
add esi, 0x10
add ebx, 0x10
cmp esi, 0x40
jb 0x483740
mov al, byte [ebp - 7]
jmp 0x483775
mov al, 1
jmp 0x483775
mov ecx, 0x551b60
lea eax, [ebp - 0xdc]
call fcn.00483090
test al, al
sete byte [ebp - 6]
cmp byte [ebp - 6], 0
jne 0x48378d
mov ecx, dword [ebp - 0x3c]
test dword [ecx + 0x48], 0x1f80
je 0x4837ae
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x28]
push eax
mov eax, ebx
call fcn.004833d0
mov edi, eax
test edi, edi
jl 0x4843b4
mov edi, dword [ebp - 0x38]
jmp 0x4837b1
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
lea esi, [ebp - 0x8c]
lea eax, [ebp - 0xdc]
call fcn.004830d0
test al, al
jne 0x4837f6
cmp edi, 0xd
jne 0x4838b5
cmp dword [ebp - 0xdc], 0
jne 0x4838b5
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
push ecx
push edx
push eax
lea ecx, [ebp - 0x8c]
push ecx
push ebx
call fcn.00477230
mov edi, eax
xor ecx, ecx
cmp edi, ecx
jl 0x4843b4
cmp byte [ebp - 0xc], cl
je 0x48383a
mov edx, dword [ebx + 0xb828]
mov eax, dword [edx + 0xc]
mov edx, dword [ebx + 0x10]
mov esi, dword [ebx + 0x14]
mov edx, dword [esi + edx*4 - 4]
mov edx, dword [edx + 0xc]
mov eax, dword [eax]
mov dword [edx], eax
mov eax, dword [ebx + 0xb828]
mov dword [eax + 0x3c], ecx
mov dword [eax], ecx
mov dword [eax + 8], ecx
cmp dword [ebp - 0x28], ecx
je 0x484452
mov ecx, dword [ebp - 0x28]
push ecx
mov esi, ebx
call fcn.00508740
mov edi, eax
test edi, edi
jl 0x4843b4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor edi, edi
cmp dword [ebp - 0x14], edi
jbe 0x4838b5
lea esi, [ebp - 0xdc]
lea esp, [esp]
xor edx, edx
xor eax, eax
mov ecx, dword [esi + eax*4]
cmp ecx, 0xffffffff
je 0x483898
lea ebx, [edx + eax]
cmp ecx, dword [ebx*4 + 0x551b20]
jne 0x4838a9
inc eax
cmp eax, 4
jb 0x483884
inc edi
add esi, 0x10
cmp edi, dword [ebp - 0x14]
jb 0x483880
jmp 0x4838b5
add edx, 4
cmp edx, 0x20
jb 0x483882
mov byte [ebp - 6], 1
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xb828]
mov ecx, dword [eax + 0x3c]
and ecx, 0xfff00000
cmp ecx, 0x10d00000
je 0x4838db
cmp ecx, 0x10e00000
jne 0x483aa1
mov ecx, dword [eax]
xor bl, bl
test ecx, ecx
jbe 0x483aa1
mov eax, dword [eax + 4]
mov edx, ecx
mov esi, 0x1f80
mov ecx, dword [eax]
test dword [ecx + 0x48], esi
je 0x4838fa
mov bl, 1
add eax, 4
sub edx, 1
jne 0x4838f1
test bl, bl
je 0x483aa1
mov edx, dword [edi + 0x3688]
mov dword [ebp - 0x1c], edx
xor esi, esi
lea ebx, [ebp - 0x9c]
fldz
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x3688]
sub esp, 8
fstp qword [esp]
push 0
push 0
push esi
push ecx
push edx
push ebx
push eax
call fcn.00508980
mov edi, eax
test edi, edi
jl 0x4843b4
inc esi
add ebx, 4
cmp esi, 4
jb 0x48391b
mov eax, dword [ebp - 0x1c]
inc dword [eax + 0x10]
mov eax, dword [0x551d48]
xor ebx, ebx
cmp eax, ebx
jge 0x483968
xor eax, eax
jmp 0x48396f
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0x14], ebx
je 0x483997
mov ecx, dword [eax + 0x14]
cmp ecx, ebx
jne 0x483981
xor ecx, ecx
mov esi, ecx
jmp 0x4839a5
mov edx, dword [ecx]
mov dword [eax + 0x14], edx
cmp edx, ebx
jne 0x48398d
mov dword [eax + 0x18], ebx
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x4839a5
mov ecx, dword [eax + 0x10]
push 0x10
push 0x44
call fcn.00547721
mov esi, eax
cmp esi, ebx
je 0x483bac
or eax, 0xffffffff
mov dword [esi + 0x10], eax
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 8]
xor edx, edx
xor ecx, ecx
mov dword [esi], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 4], ebx
mov word [esi + 0x40], cx
mov dword [esi + 0xc], ebx
mov word [esi + 0x42], dx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov edx, dword [eax + 0xb828]
mov ecx, dword [edx]
mov edx, dword [edx + 8]
mov eax, ecx
push ebx
and eax, 0xfffff
or eax, 0x10000000
push esi
mov dword [ebp - 0x34], esi
call fcn.0050a980
mov edi, eax
cmp edi, ebx
jl 0x4843b4
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xb828]
mov ecx, dword [eax + 0x34]
mov dword [esi + 0x34], ecx
mov edx, dword [eax + 0x38]
mov dword [esi + 0x38], edx
mov eax, dword [edi + 0xb828]
mov eax, dword [eax + 8]
lea ecx, [eax*4]
mov eax, dword [esi + 0xc]
push ecx
lea edx, [ebp - 0x9c]
push edx
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [edi + 0xb828]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esi + 4]
add ecx, ecx
add esp, 0xc
add ecx, ecx
push ecx
push eax
push edx
call sub.msvcrt.dll_memcpy
mov eax, dword [edi + 0xb828]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
add ecx, ecx
add esp, 0xc
add ecx, ecx
push ecx
lea edx, [ebp - 0x9c]
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push esi
mov esi, edi
call fcn.00508740
mov edi, eax
test edi, edi
jl 0x4843b4
mov dword [ebp - 0x34], 0
mov edi, esi
cmp byte [ebp - 6], 0
je 0x48431b
test byte [edi + 0xac], 2
je 0x48431b
mov eax, dword [ebp - 0x18]
mov byte [ebp - 6], 0
mov byte [ebp - 7], 0
cmp eax, 4
jne 0x483ea3
mov byte [ebp - 5], 1
mov dword [ebp - 0x10], 0
jmp 0x483ae0
cmp byte [ebp - 5], 0
je 0x483b84
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
or eax, 0xffffffff
cmp dword [ebp - 0x14], 0
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x8c], 0xffffffff
mov dword [ebp + eax*4 - 0x7c], 0
mov byte [ebp - 5], 0
jbe 0x483bb9
mov ecx, dword [ebp - 0x14]
lea edi, [ebp - 0xdc]
mov dword [ebp - 0x1c], ecx
lea esi, [ebp - 0x8c]
mov eax, edi
call fcn.004830d0
mov bl, al
lea esi, [ebp - 0x7c]
mov eax, edi
call fcn.004830d0
test bl, bl
je 0x483b61
test al, al
jne 0x483b65
mov byte [ebp - 5], 1
add edi, 0x10
sub dword [ebp - 0x1c], 1
jne 0x483b40
cmp byte [ebp - 5], 0
je 0x483bb9
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 4
jb 0x483ae0
cmp byte [ebp - 0xc], 0
jne 0x4840bc
mov byte [ebp - 5], 1
mov dword [ebp - 0x10], 0
cmp byte [ebp - 5], 0
je 0x483e12
xor edx, edx
xor ebx, ebx
jmp 0x483cf6
mov dword [ebp - 0x34], ebx
mov edi, 0x8007000e
jmp 0x4843b4
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
push esi
push 4
push ebx
lea edx, [ebp - 0x8c]
push edx
push eax
call fcn.00477230
mov edi, eax
test edi, edi
jl 0x4843b4
mov edx, dword [ebp + 8]
push esi
push 4
push ebx
lea ecx, [ebp - 0x7c]
push ecx
push edx
call fcn.00477230
mov edi, eax
test edi, edi
jl 0x4843b4
cmp byte [ebp - 0xc], 0
je 0x484079
call fcn.0050cb40
test eax, eax
je 0x483c98
call fcn.0050a750
mov ebx, eax
test ebx, ebx
je 0x483c9a
push 0
mov edx, 1
push ebx
lea ecx, [edx + 1]
mov eax, 0x20400001
call fcn.0050a980
mov edi, eax
test edi, edi
jl 0x483c9f
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xb828]
mov ecx, dword [eax + 0x34]
mov dword [ebx + 0x34], ecx
mov edx, dword [eax + 0x38]
mov dword [ebx + 0x38], edx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + eax*4 - 8]
mov eax, dword [edx + 0xc]
mov edx, dword [eax]
mov ecx, dword [ebx + 4]
mov dword [ecx], edx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + eax*4 - 4]
mov eax, dword [edx + 0xc]
mov edx, dword [eax]
mov ecx, dword [ebx + 4]
mov dword [ecx + 4], edx
mov eax, dword [esi + 0xb828]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebx + 0xc]
mov eax, dword [ecx]
push ebx
mov dword [edx], eax
call fcn.00508740
mov edi, eax
test edi, edi
jl 0x483c9f
jmp 0x484079
xor ebx, ebx
mov edi, 0x8007000e
test ebx, ebx
je 0x4843b4
mov esi, ebx
call fcn.0050a890
mov eax, dword [0x551d48]
test eax, eax
jl 0x4843b4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
je 0x4843b4
push 0x44
push 0xfe
push ebx
call sub.msvcrt.dll_memset
mov dword [ebx], 0
mov eax, dword [esi + 0x18]
add esp, 0xc
test eax, eax
je 0x4843ae
mov dword [eax], ebx
jmp 0x4843b1
xor edx, edx
mov ecx, dword [ebp - 0x10]
cmp ebx, ecx
je 0x483df2
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
or eax, 0xffffffff
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x8c]
mov dword [eax + ecx*4], 0xffffffff
mov dword [eax + ebx*4], 0xffffffff
mov dword [ebp + ecx*4 - 0x7c], edx
mov dword [ebp + ebx*4 - 0x7c], edx
mov byte [ebp - 5], 0
mov byte [ebp - 0x21], 0
cmp dword [ebp - 0x14], edx
jbe 0x483dfe
mov ecx, dword [ebp - 0x14]
lea edi, [ebp - 0xdc]
mov dword [ebp - 0x1c], ecx
lea esi, [ebp - 0x8c]
mov eax, edi
call fcn.004830d0
mov byte [ebp - 0x29], al
lea esi, [ebp - 0x7c]
mov eax, edi
call fcn.004830d0
cmp byte [ebp - 0x29], 0
jne 0x483d86
mov byte [ebp - 0x21], 1
jmp 0x483d8a
test al, al
jne 0x483d8e
mov byte [ebp - 5], 1
add edi, 0x10
sub dword [ebp - 0x1c], 1
jne 0x483d60
cmp byte [ebp - 5], 0
je 0x483dfe
cmp byte [ebp - 0x21], 0
jne 0x483df2
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x68], eax
or eax, 0xffffffff
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
or eax, eax
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
xor eax, eax
mov dword [ebp - 0x60], edx
mov dword [ebp + ecx*4 - 0x5c], eax
mov dword [ebp + ebx*4 - 0x4c], eax
mov byte [ebp - 7], 1
inc ebx
cmp ebx, 4
jb 0x483cf4
jmp 0x483e02
mov byte [ebp - 6], 1
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 4
jb 0x483b99
cmp byte [ebp - 6], 0
je 0x483e43
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp + 8]
push 0
push 4
push esi
lea edx, [ebp - 0x8c]
push edx
push ebx
call fcn.00477230
mov edi, eax
test edi, edi
jl 0x4843b4
push 0
push 4
jmp 0x483ff0
cmp byte [ebp - 7], 0
je 0x48400b
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp + 8]
push 0
push 4
push esi
lea ecx, [ebp - 0x6c]
push ecx
push ebx
call fcn.00477230
mov edi, eax
test edi, edi
jl 0x4843b4
push 0
push 4
push esi
lea edx, [ebp - 0x5c]
push edx
push ebx
call fcn.00477230
mov edi, eax
test edi, edi
jl 0x4843b4
push 0
push 4
push esi
lea eax, [ebp - 0x4c]
push eax
push ebx
call fcn.00477230
mov edi, eax
test edi, edi
jl 0x4843b4
jmp 0x484079
cmp eax, 3
jne 0x4840b2
cmp byte [ebp - 0xc], 0
jne 0x4840bc
or ecx, 0xffffffff
mov dword [ebp - 0xc], ecx
xor eax, eax
mov edi, edi
cmp dword [ebp + eax*4 - 0xdc], ecx
jne 0x483ecc
mov dword [ebp - 0xc], eax
inc eax
cmp eax, 4
jb 0x483ec0
mov dword [ebp - 0x10], 0
cmp byte [ebp - 6], 0
jne 0x483fca
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
xor ebx, ebx
or edx, 0xffffffff
cmp byte [ebp - 6], 0
jne 0x483fb7
cmp ebx, ecx
je 0x483fad
cmp ebx, esi
je 0x483fad
cmp ecx, esi
je 0x483fad
mov eax, edx
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
xor eax, eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x8c]
mov dword [eax + ecx*4], 0
mov dword [eax + ebx*4], 0
mov dword [ebp + ecx*4 - 0x7c], edx
xor edi, edi
mov dword [ebp + ebx*4 - 0x7c], edx
mov dword [ebp + esi*4 - 0x7c], edx
mov byte [ebp - 5], 0
cmp dword [ebp - 0x14], edi
jbe 0x483f9e
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x20], ecx
cmp byte [ebp - 5], 0
jne 0x483fa4
mov eax, dword [ebp - 0x20]
lea esi, [ebp - 0x8c]
call fcn.004830d0
test al, al
jne 0x483f85
mov byte [ebp - 5], 1
add dword [ebp - 0x20], 0x10
inc edi
cmp edi, dword [ebp - 0x14]
jb 0x483f69
cmp byte [ebp - 5], 0
jne 0x483fa4
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
or edx, 0xffffffff
mov byte [ebp - 6], 1
jmp 0x483fad
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
or edx, 0xffffffff
inc ebx
cmp ebx, 4
jb 0x483eee
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, 4
jb 0x483ed9
cmp byte [ebp - 6], 0
je 0x48400b
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp + 8]
push 0
push 3
push esi
lea edx, [ebp - 0x8c]
push edx
push ebx
call fcn.00477230
mov edi, eax
test edi, edi
jl 0x4843b4
push 0
push 3
push esi
lea eax, [ebp - 0x7c]
push eax
push ebx
call fcn.00477230
mov edi, eax
test edi, edi
jl 0x4843b4
cmp byte [ebp - 6], 0
jne 0x484079
xor esi, esi
cmp dword [ebp - 0x18], esi
jbe 0x484079
mov ebx, dword [ebp + 8]
jmp 0x484020
or eax, 0xffffffff
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov eax, dword [ebx + 0xb828]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + esi*4]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
push 0
push eax
mov dword [ebp + edx*4 - 0x8c], 0
push ecx
lea edx, [ebp - 0x8c]
push edx
push ebx
call fcn.00477230
mov edi, eax
test edi, edi
jl 0x4843b4
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x484020
mov eax, dword [ebp - 0x28]
xor ebx, ebx
cmp eax, ebx
je 0x484098
mov esi, dword [ebp + 8]
push eax
call fcn.00508740
mov edi, eax
cmp edi, ebx
jl 0x4843b4
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb828]
mov dword [eax + 0x3c], ebx
mov dword [eax], ebx
mov dword [eax + 8], ebx
xor ebx, ebx
xor edi, edi
jmp 0x4843b4
cmp byte [ebp - 0xc], 0
je 0x48400b
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp + 8]
push ecx
push edx
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.00483160
mov edi, eax
test edi, edi
jl 0x4843b4
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x4840fa
push eax
call fcn.00508740
mov edi, eax
test edi, edi
jl 0x4843b4
mov dword [ebp - 0x34], 0
call fcn.0050cb40
mov esi, eax
test esi, esi
je 0x483baf
xor eax, eax
or ecx, 0xffffffff
xor edx, edx
mov dword [esi], eax
mov dword [esi + 8], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 4], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x10], ecx
mov word [esi + 0x40], dx
mov word [esi + 0x42], dx
mov dword [esi + 0x20], ecx
mov ecx, dword [eax + 0x3688]
push edx
mov edx, 1
mov dword [ebp - 0x1c], ecx
push esi
lea ecx, [edx + 1]
mov eax, 0x20500001
mov ebx, esi
call fcn.0050a980
mov edi, eax
test edi, edi
jl 0x483c9f
mov ecx, dword [ebp + 8]
fldz
mov eax, dword [ecx + 0xb828]
mov edx, dword [eax + 0x34]
sub esp, 8
fstp qword [esp]
mov dword [esi + 0x34], edx
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0x1c]
push 0
mov dword [esi + 0x38], eax
mov eax, dword [edx + 0x10]
push 0
push 0
lea edi, [eax + 1]
push eax
mov dword [edx + 0x10], edi
mov edx, dword [ecx + 0x3688]
push edx
lea eax, [ebp - 0xc]
push eax
push ecx
call fcn.00508980
mov edi, eax
test edi, edi
jl 0x483c9f
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x18]
mov dword [ecx], edx
mov ecx, dword [eax + 0xb828]
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 4]
mov edx, dword [edx]
mov dword [ecx], edx
mov ecx, dword [eax + 0xb828]
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 4]
mov edx, dword [edx + edi*4]
push esi
mov esi, eax
mov dword [ecx + 4], edx
call fcn.00508740
mov edi, eax
test edi, edi
jl 0x483c9f
mov eax, 1
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x18], eax
jbe 0x484079
mov eax, dword [ebp - 0x18]
lea ecx, [eax*4 + 4]
mov dword [ebp - 0x30], ecx
call fcn.0050cb40
test eax, eax
je 0x483c98
call fcn.0050a750
mov ebx, eax
test ebx, ebx
je 0x483c9a
push 0
mov edx, 1
push ebx
lea ecx, [edx + 2]
mov eax, 0x70300001
call fcn.0050a980
mov edi, eax
test edi, edi
jl 0x483c9f
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb828]
mov edx, dword [ecx + 0x34]
mov esi, dword [ebx + 4]
mov edi, dword [ebp - 0x30]
mov dword [ebx + 0x34], edx
mov ecx, dword [ecx + 0x38]
mov dword [ebx + 0x38], ecx
mov edx, dword [eax + 0xb828]
mov edx, dword [edx + 4]
mov ecx, dword [ebp - 0x20]
mov edx, dword [edx + ecx*4]
mov dword [esi], edx
mov edx, dword [eax + 0xb828]
mov edx, dword [edx + 4]
mov edx, dword [edi + edx]
mov esi, dword [ebx + 4]
mov dword [esi + 4], edx
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0xc]
mov dword [edx + 8], esi
mov edx, dword [ebp - 0x18]
dec edx
cmp ecx, edx
je 0x4842df
fldz
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x10]
sub esp, 8
fstp qword [esp]
push 0
push 0
push 0
lea esi, [ecx + 1]
push ecx
mov dword [edx + 0x10], esi
mov ecx, dword [eax + 0x3688]
push ecx
lea edx, [ebp - 0xc]
push edx
push eax
call fcn.00508980
mov edi, eax
test edi, edi
jl 0x483c9f
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
jmp 0x4842ef
mov edx, dword [eax + 0xb828]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax]
mov dword [ecx], edx
mov esi, dword [ebp + 8]
push ebx
call fcn.00508740
mov edi, eax
test edi, edi
jl 0x483c9f
mov eax, dword [ebp - 0x20]
add dword [ebp - 0x30], 4
inc eax
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x18]
jb 0x484215
jmp 0x484079
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0xb828]
xor ebx, ebx
push ebx
push ecx
push esi
call fcn.00508dd0
mov edi, eax
cmp edi, ebx
jl 0x4843b4
mov eax, dword [esi + 0xb828]
mov dword [eax + 0x3c], ebx
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov eax, dword [ebp - 0x28]
cmp eax, ebx
je 0x48435c
push eax
call fcn.00508740
mov edi, eax
cmp edi, ebx
jl 0x4843b4
mov dword [ebp - 0x28], ebx
xor edi, edi
jmp 0x4843b4
cmp ecx, 0x50200000
je 0x484380
cmp ecx, 0x70800000
je 0x484380
mov edi, 0x80004005
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push ebx
push esi
call fcn.00508dd0
mov edi, eax
test edi, edi
jl 0x484452
mov esi, dword [esi + 0xb828]
xor eax, eax
mov dword [esi + 0x3c], eax
mov dword [esi], eax
mov dword [esi + 8], eax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x4843fd
call fcn.0050a890
mov eax, dword [0x551d48]
test eax, eax
jl 0x4843fd
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test ebx, ebx
je 0x4843fd
push 0x44
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], 0
mov eax, dword [ebx + 0x18]
add esp, 0xc
test eax, eax
je 0x4843f7
mov dword [eax], esi
jmp 0x4843fa
mov dword [ebx + 0x14], esi
mov dword [ebx + 0x18], esi
mov esi, dword [ebp - 0x34]
test esi, esi
je 0x484452
call fcn.0050a890
mov eax, dword [0x551d48]
test eax, eax
jl 0x484452
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test ebx, ebx
je 0x484452
push 0x44
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], 0
mov eax, dword [ebx + 0x18]
add esp, 0xc
test eax, eax
je 0x48444c
mov dword [eax], esi
mov dword [ebx + 0x18], esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [ebx + 0x14], esi
mov dword [ebx + 0x18], esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4