Function at 0x455900
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x497e82
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x4c51d0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, ecx
push eax
mov dword [ebp - 0x60], esi
call fcn.0044c090
xor ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [esi + 0x70]
mov dword [esi], 0x4ae094
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 1
push 0x24
mov dword [eax], 0x4a8cc0
call fcn.0046e8ee
add esp, 4
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x455973
push eax
call fcn.00420c70
mov esi, eax
jmp 0x455975
xor esi, esi
mov byte [ebp - 4], 1
mov edi, dword [ebp - 0x50]
add edi, 8
push esi
lea ecx, [edi + 4]
mov dword [edi], esi
call fcn.00421180
push esi
push esi
push edi
call fcn.004604c0
mov ecx, dword [ebp - 0x50]
add esp, 0xc
mov dword [ecx], 0x4a8c10
mov eax, dword [ebp + 8]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x60]
mov dword [edx + 0x98], ebx
fld dword [eax + 8]
fsub qword [0x4aeed8]
push 0x70
fstp dword [ebp - 0x50]
fldz
fst dword [ebp - 0x78]
fstp dword [ebp - 0x74]
fld dword [ebp - 0x50]
fstp dword [ebp - 0x70]
fld1
fstp dword [ebp - 0x6c]
call fcn.0046e8ee
mov esi, eax
add esp, 4
mov dword [ebp - 0x68], esi
mov byte [ebp - 4], 4
cmp esi, ebx
je 0x4559f7
lea ecx, [ebp - 0x78]
push ecx
call fcn.0044c090
mov dword [esi], 0x4ada6c
mov eax, esi
jmp 0x4559f9
xor eax, eax
mov byte [ebp - 4], 3
fldz
fst dword [eax + 0x5c]
mov byte [eax + 0x54], 1
fld1
mov dword [eax + 0x58], 0xffe6e6e6
fstp dword [eax + 0x60]
push eax
fst dword [eax + 0x64]
fstp dword [eax + 0x68]
mov eax, dword [ebp - 0x60]
call fcn.0044c440
push 0x98
call fcn.0046e8ee
mov esi, eax
add esp, 4
mov dword [ebp - 0x68], esi
mov byte [ebp - 4], 5
cmp esi, ebx
je 0x455aa5
mov eax, dword [ebp + 8]
fld dword [eax + 0xc]
lea edx, [ebp - 0x24]
fstp dword [ebp - 0x6c]
push edx
fld dword [eax + 8]
fstp dword [ebp - 0x50]
fldz
fstp dword [ebp - 0x24]
fld1
fstp dword [ebp - 0x20]
fld dword [ebp - 0x50]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x6c]
fstp dword [ebp - 0x18]
call fcn.0044c090
fld1
mov dword [esi], 0x4adac4
mov dword [esi + 0x70], ebx
mov dword [esi + 0x80], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x74], ebx
fstp dword [esi + 0x94]
mov dword [esi + 0x84], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov edi, esi
jmp 0x455aa7
xor edi, edi
mov byte [ebp - 4], 3
xor eax, eax
mov word [ebp - 0x30], ax
push 8
mov eax, 0x4ad51c
lea esi, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
call fcn.0040e520
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.0044c8d0
mov esi, eax
mov dword [edi + 0x70], esi
cmp esi, ebx
je 0x455b20
mov edx, dword [esi + 4]
lea ecx, [ebp - 0x50]
push ecx
push edx
mov dword [ebp - 0x50], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
cmp eax, ebx
je 0x455af6
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x50]
mov esi, dword [edi + 0x70]
lea ecx, [ebp - 0x50]
mov dword [edi + 0x7c], eax
mov edx, dword [esi + 4]
push ecx
push edx
mov dword [ebp - 0x50], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
cmp eax, ebx
je 0x455b17
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x50]
mov dword [edi + 0x80], eax
mov byte [ebp - 4], 3
cmp dword [ebp - 0x1c], 8
jb 0x455b36
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0046e5ca
add esp, 4
mov eax, 3
mov dword [edi + 0x84], eax
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], eax
mov dword [edi + 0x90], eax
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044c440
test byte [sym.Install.exe____B_1__get_instance___singleton_VCFpSysLanguage___serialization_boost__CAAAVCFpSysLanguage__XZ_51], 1
jne 0x455b85
or dword [sym.Install.exe____B_1__get_instance___singleton_VCFpSysLanguage___serialization_boost__CAAAVCFpSysLanguage__XZ_51], 1
push 0x49c020
mov byte [sym.Install.exe__t__1__get_instance___singleton_VCFpSysLanguage___serialization_boost__CAAAVCFpSysLanguage__XZ_4V__singleton_wrapp], bl
mov byte [0x4d0016], bl
call fcn.0046e898
add esp, 4
mov esi, sym.Install.exe__t__1__get_instance___singleton_VCFpSysLanguage___serialization_boost__CAAAVCFpSysLanguage__XZ_4V__singleton_wrapp
call fcn.00412470
movzx edx, al
mov eax, dword [section..data]
mov dword [ebp - 0x64], edx
mov edx, dword [eax + 0xc]
mov ecx, section..data
call edx
add eax, 0x10
mov dword [ebp - 0x68], eax
push 0x98
mov byte [ebp - 4], 7
call fcn.0046e8ee
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 8
cmp esi, ebx
je 0x455c27
fld dword [0x4af030]
lea eax, [ebp - 0x24]
fstp dword [ebp - 0x24]
push eax
fld dword [0x4af02c]
fstp dword [ebp - 0x20]
fldz
fst dword [ebp - 0x1c]
fstp dword [ebp - 0x18]
call fcn.0044c090
fld1
mov dword [esi], 0x4adac4
mov dword [esi + 0x70], ebx
mov dword [esi + 0x80], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x74], ebx
fstp dword [esi + 0x94]
mov dword [esi + 0x84], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov edi, esi
jmp 0x455c29
xor edi, edi
mov byte [ebp - 4], 7
mov eax, 0x4ade28
cmp dword [ebp - 0x64], ebx
jne 0x455c3c
mov eax, 0x4ade3c
xor ecx, ecx
mov word [ebp - 0x30], cx
mov ecx, eax
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x455c51
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040e520
mov ecx, esi
push 1
mov esi, edi
mov byte [ebp - 4], 9
call fcn.0044e810
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x455c8e
mov edx, dword [ebp - 0x30]
push edx
call fcn.0046e5ca
add esp, 4
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044c440
fld dword [0x4af030]
fstp dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
fld dword [0x4af028]
mov dword [ebp - 0x24], eax
fstp dword [ebp - 0x58]
mov ecx, dword [ebp - 0x58]
fld dword [0x4af024]
push 0xf4
fstp dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
fld dword [0x4af020]
mov dword [ebp - 0x20], ecx
fstp dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
call fcn.0046e8ee
mov edi, eax
add esp, 4
mov dword [ebp - 0x50], edi
mov byte [ebp - 4], 0xa
cmp edi, ebx
je 0x455d18
fld dword [0x4a4c1c]
mov edx, dword [0x4c88b8]
sub esp, 8
fstp dword [esp + 4]
mov ecx, esp
mov dword [ebp - 0x6c], esp
push edx
call fcn.00401c40
lea eax, [ebp - 0x24]
push eax
call fcn.00457b10
mov esi, eax
jmp 0x455d1a
xor esi, esi
mov byte [ebp - 4], 7
mov edi, dword [ebp - 0x60]
push esi
mov eax, edi
call fcn.0044c440
push 0xcc
mov dword [edi + 0x80], esi
call fcn.0046e8ee
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0xb
cmp eax, ebx
je 0x455d79
fld dword [0x4af01c]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x24]
push ecx
fld dword [0x4af028]
push eax
fstp dword [ebp - 0x20]
fld dword [0x4af018]
fstp dword [ebp - 0x1c]
fld dword [0x4af020]
fstp dword [ebp - 0x18]
call fcn.0044f2c0
mov edi, eax
jmp 0x455d7b
xor edi, edi
mov byte [ebp - 4], 7
mov eax, 0x4ade54
cmp dword [ebp - 0x64], ebx
jne 0x455d8e
mov eax, 0x4ade68
push 1
push 3
sub esp, 0x1c
mov esi, esp
xor edx, edx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
mov ecx, eax
mov word [esi], dx
lea edx, [ecx + 2]
mov dword [ebp - 0x50], esp
mov dword [ebp - 0x50], edx
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x455db1
sub ecx, dword [ebp - 0x50]
sar ecx, 1
push ecx
call fcn.0040e520
call fcn.00450b50
mov ecx, dword [ebp - 0x60]
mov eax, 0x456ff0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x34], ebx
push ecx
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xd
call fcn.004571f0
lea ecx, [edi + 0xb4]
lea eax, [ebp - 0x4c]
lea edx, [ebp - 0x70]
mov byte [ebp - 4], 0xe
call fcn.00413c90
mov eax, dword [ebp - 0x6c]
cmp eax, ebx
je 0x455e25
mov ecx, eax
add eax, 8
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x455e25
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
lea eax, [ebp - 0x4c]
push eax
mov byte [ebp - 4], 7
call fcn.00458090
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044c440
push 0x98
call fcn.0046e8ee
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0xf
cmp esi, ebx
je 0x455eb4
fld dword [0x4af030]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x24]
push ecx
fld dword [0x4af014]
fstp dword [ebp - 0x20]
fldz
fst dword [ebp - 0x1c]
fstp dword [ebp - 0x18]
call fcn.0044c090
fld1
mov dword [esi], 0x4adac4
mov dword [esi + 0x70], ebx
mov dword [esi + 0x80], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x74], ebx
fstp dword [esi + 0x94]
mov dword [esi + 0x84], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov edi, esi
jmp 0x455eb6
xor edi, edi
mov byte [ebp - 4], 7
mov eax, 0x4ade80
cmp dword [ebp - 0x64], ebx
jne 0x455ec9
mov eax, 0x4ade94
xor edx, edx
mov ecx, eax
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], dx
lea esi, [ecx + 2]
mov edi, edi
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x455ee0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040e520
mov ecx, esi
push 1
mov esi, edi
mov byte [ebp - 4], 0x10
call fcn.0044e810
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x455f1d
mov eax, dword [ebp - 0x30]
push eax
call fcn.0046e5ca
add esp, 4
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044c440
fld dword [0x4af030]
fstp dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
fld dword [0x4af010]
mov dword [ebp - 0x24], ecx
fstp dword [ebp - 0x58]
mov edx, dword [ebp - 0x58]
fld dword [0x4af024]
push 0xf4
fstp dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
fld dword [0x4af020]
mov dword [ebp - 0x20], edx
fstp dword [ebp - 0x50]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
call fcn.0046e8ee
mov edi, eax
add esp, 4
mov dword [ebp - 0x50], edi
mov byte [ebp - 4], 0x11
cmp edi, ebx
je 0x455fa7
fld dword [0x4a4c1c]
mov edx, dword [0x4c88b8]
sub esp, 8
fstp dword [esp + 4]
mov ecx, esp
mov dword [ebp - 0x6c], esp
push edx
call fcn.00401c40
lea eax, [ebp - 0x24]
push eax
call fcn.00457b10
mov esi, eax
jmp 0x455fa9
xor esi, esi
mov byte [ebp - 4], 7
mov edi, dword [ebp - 0x60]
push esi
mov eax, edi
call fcn.0044c440
push 0xcc
mov dword [edi + 0x84], esi
call fcn.0046e8ee
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x12
cmp eax, ebx
je 0x456008
fld dword [0x4af01c]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x24]
push ecx
fld dword [0x4af010]
push eax
fstp dword [ebp - 0x20]
fld dword [0x4af018]
fstp dword [ebp - 0x1c]
fld dword [0x4af020]
fstp dword [ebp - 0x18]
call fcn.0044f2c0
mov edi, eax
jmp 0x45600a
xor edi, edi
mov byte [ebp - 4], 7
mov eax, 0x4ade54
cmp dword [ebp - 0x64], ebx
jne 0x45601d
mov eax, 0x4ade68
push 1
push 3
sub esp, 0x1c
mov esi, esp
xor edx, edx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
mov ecx, eax
mov word [esi], dx
lea edx, [ecx + 2]
mov dword [ebp - 0x50], esp
mov dword [ebp - 0x50], edx
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x456040
sub ecx, dword [ebp - 0x50]
sar ecx, 1
push ecx
call fcn.0040e520
call fcn.00450b50
mov ecx, dword [ebp - 0x60]
mov eax, 0x457090
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x34], ebx
push ecx
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x14
call fcn.004571f0
lea ecx, [edi + 0xb4]
lea eax, [ebp - 0x4c]
lea edx, [ebp - 0x70]
mov byte [ebp - 4], 0x15
call fcn.00413c90
mov eax, dword [ebp - 0x6c]
cmp eax, ebx
je 0x4560b4
mov ecx, eax
add eax, 8
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x4560b4
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
lea eax, [ebp - 0x4c]
push eax
mov byte [ebp - 4], 7
call fcn.00458090
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044c440
cmp dword [ebp - 0x64], ebx
je 0x4560d3
fld1
jmp 0x4560d9
fld dword [0x4aefe0]
push 0xcc
fstp dword [ebp - 0x6c]
call fcn.0046e8ee
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x16
cmp eax, ebx
je 0x456126
fld dword [0x4af030]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x24]
push ecx
fld dword [0x4af00c]
push eax
fstp dword [ebp - 0x20]
fld dword [0x4af008]
fstp dword [ebp - 0x1c]
fld dword [0x4aef5c]
fstp dword [ebp - 0x18]
call fcn.00451f90
mov edi, eax
jmp 0x456128
xor edi, edi
push 1
push 4
sub esp, 0x1c
mov byte [ebp - 4], 7
mov esi, esp
mov dword [ebp - 0x50], esp
xor edx, edx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
push 7
mov eax, 0x4ad564
mov word [esi], dx
call fcn.0040e520
call fcn.00450b50
cmp byte [edi + 0xc4], 1
je 0x4561bb
lea eax, [ebp - 0x2c]
mov byte [edi + 0xc4], 1
mov dword [ebp - 0x2c], 0x4adcb4
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x17
mov ecx, dword [0x4cfa0c]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.00402620
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
je 0x4561b1
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
lea eax, [ebp - 0x2c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call edx
mov dword [edi + 0xc8], 3
push 0x98
call fcn.0046e8ee
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x18
cmp esi, ebx
je 0x456232
fld dword [0x4aef58]
lea eax, [ebp - 0x24]
fstp dword [ebp - 0x24]
push eax
fld dword [ebp - 0x6c]
fstp dword [ebp - 0x20]
fldz
fst dword [ebp - 0x1c]
fstp dword [ebp - 0x18]
call fcn.0044c090
fld1
mov dword [esi], 0x4adac4
mov dword [esi + 0x70], ebx
mov dword [esi + 0x80], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x74], ebx
fstp dword [esi + 0x94]
mov dword [esi + 0x84], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov dword [ebp - 0x50], esi
jmp 0x456235
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 7
mov eax, 0x4adeac
cmp dword [ebp - 0x64], ebx
jne 0x456248
mov eax, 0x4adebc
xor ecx, ecx
mov word [ebp - 0x30], cx
mov ecx, eax
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
lea esi, [ecx + 2]
lea ecx, [ecx]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x456260
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040e520
mov byte [ebp - 4], 0x19
mov ecx, esi
mov esi, dword [ebp - 0x50]
push 1
call fcn.0044e810
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x45629e
mov edx, dword [ebp - 0x30]
push edx
call fcn.0046e5ca
add esp, 4
mov eax, dword [ebp - 0x50]
push eax
mov eax, edi
call fcn.0044c440
mov esi, dword [ebp - 0x60]
push edi
mov eax, esi
call fcn.0044c440
mov dword [esi + 0x88], edi
mov byte [edi + 0x3a], bl
cmp dword [ebp - 0x64], ebx
je 0x4562ca
fld dword [0x4af004]
jmp 0x4562d0
fld dword [0x4af000]
fstp dword [ebp - 0x50]
push 0xcc
fld dword [0x4af030]
fstp dword [ebp - 0x24]
fld dword [0x4af00c]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x50]
fadd qword [0x4aeff8]
fstp dword [ebp - 0x1c]
fld dword [0x4aefb8]
fstp dword [ebp - 0x18]
call fcn.0046e8ee
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x1a
cmp eax, ebx
je 0x456320
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.00451f90
mov edi, eax
jmp 0x456322
xor edi, edi
push 1
push 4
sub esp, 0x1c
mov byte [ebp - 4], 7
mov esi, esp
mov dword [ebp - 0x50], esp
xor edx, edx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
push 7
mov eax, 0x4ad564
mov word [esi], dx
call fcn.0040e520
call fcn.00450b50
cmp byte [edi + 0xc4], 1
je 0x4563b5
lea eax, [ebp - 0x2c]
mov byte [edi + 0xc4], 1
mov dword [ebp - 0x2c], 0x4adcb4
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x1b
mov ecx, dword [0x4cfa0c]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.00402620
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
je 0x4563ab
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
lea eax, [ebp - 0x2c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call edx
mov dword [edi + 0xc8], 3
push 0x98
call fcn.0046e8ee
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x1c
cmp esi, ebx
je 0x45642c
fld dword [0x4aef58]
lea eax, [ebp - 0x24]
fstp dword [ebp - 0x24]
push eax
fld dword [ebp - 0x6c]
fstp dword [ebp - 0x20]
fldz
fst dword [ebp - 0x1c]
fstp dword [ebp - 0x18]
call fcn.0044c090
fld1
mov dword [esi], 0x4adac4
mov dword [esi + 0x70], ebx
mov dword [esi + 0x80], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x74], ebx
fstp dword [esi + 0x94]
mov dword [esi + 0x84], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov dword [ebp - 0x50], esi
jmp 0x45642f
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 7
mov eax, 0x4aded0
cmp dword [ebp - 0x64], ebx
jne 0x456442
mov eax, 0x4adee8
xor ecx, ecx
mov word [ebp - 0x30], cx
mov ecx, eax
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x456457
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040e520
mov byte [ebp - 4], 0x1d
mov ecx, esi
mov esi, dword [ebp - 0x50]
push 1
call fcn.0044e810
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x456495
mov edx, dword [ebp - 0x30]
push edx
call fcn.0046e5ca
add esp, 4
mov eax, dword [ebp - 0x50]
push eax
mov eax, edi
call fcn.0044c440
mov esi, dword [ebp - 0x60]
push edi
mov eax, esi
call fcn.0044c440
mov dword [esi + 0x8c], edi
cmp dword [ebp - 0x64], ebx
je 0x4564be
fld dword [0x4aeff0]
jmp 0x4564c4
fld dword [0x4aefec]
fstp dword [ebp - 0x50]
push 0xcc
fld dword [0x4aefe8]
fstp dword [ebp - 0x24]
fld dword [0x4af00c]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x50]
fadd qword [0x4aeff8]
fstp dword [ebp - 0x1c]
fld dword [0x4aefb8]
fstp dword [ebp - 0x18]
call fcn.0046e8ee
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x1e
cmp eax, ebx
je 0x456514
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.00451f90
mov edi, eax
jmp 0x456516
xor edi, edi
push 1
push 4
sub esp, 0x1c
mov byte [ebp - 4], 7
mov esi, esp
mov dword [ebp - 0x50], esp
xor edx, edx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
push 7
mov eax, 0x4ad564
mov word [esi], dx
call fcn.0040e520
call fcn.00450b50
push 0x98
call fcn.0046e8ee
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x1f
cmp esi, ebx
je 0x4565bd
fld dword [0x4aef58]
lea eax, [ebp - 0x24]
fstp dword [ebp - 0x24]
push eax
fld dword [ebp - 0x6c]
fstp dword [ebp - 0x20]
fldz
fst dword [ebp - 0x1c]
fstp dword [ebp - 0x18]
call fcn.0044c090
fld1
mov dword [esi], 0x4adac4
mov dword [esi + 0x70], ebx
mov dword [esi + 0x80], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x74], ebx
fstp dword [esi + 0x94]
mov dword [esi + 0x84], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov dword [ebp - 0x50], esi
jmp 0x4565c0
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 7
mov eax, 0x4adf08
cmp dword [ebp - 0x64], ebx
jne 0x4565d3
mov eax, 0x4adf1c
xor ecx, ecx
mov word [ebp - 0x30], cx
mov ecx, eax
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
lea esi, [ecx + 2]
jmp 0x4565f0
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x4565f0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040e520
mov byte [ebp - 4], 0x20
mov ecx, esi
mov esi, dword [ebp - 0x50]
push 1
call fcn.0044e810
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x45662e
mov edx, dword [ebp - 0x30]
push edx
call fcn.0046e5ca
add esp, 4
mov eax, dword [ebp - 0x50]
push eax
mov eax, edi
call fcn.0044c440
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044c440
call fcn.00456940
cmp eax, 1
jne 0x456659
mov bl, al
mov esi, edi
call fcn.00452200
xor ebx, ebx
jmp 0x45666d
cmp eax, ebx
jne 0x45666a
xor bl, bl
mov esi, edi
call fcn.00452200
xor ebx, ebx
jmp 0x45666d
mov byte [edi + 0x3a], bl
mov ecx, dword [ebp - 0x60]
mov dword [ecx + 0x90], edi
cmp dword [ebp - 0x64], ebx
je 0x456683
fld dword [0x4aeff0]
jmp 0x456689
fld dword [0x4aefec]
fstp dword [ebp - 0x50]
push 0xcc
fld dword [0x4af030]
fstp dword [ebp - 0x24]
fld dword [0x4aefe4]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x50]
fadd qword [0x4aeff8]
fstp dword [ebp - 0x1c]
fld dword [0x4aefb8]
fstp dword [ebp - 0x18]
call fcn.0046e8ee
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x21
cmp eax, ebx
je 0x4566d9
lea edx, [ebp - 0x24]
push edx
push eax
call fcn.00451f90
mov edi, eax
jmp 0x4566db
xor edi, edi
push 1
push 4
sub esp, 0x1c
mov esi, esp
mov byte [ebp - 4], 7
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
mov dword [ebp - 0x50], esp
mov word [esi], ax
push 7
mov eax, 0x4ad564
call fcn.0040e520
call fcn.00450b50
push 0x98
call fcn.0046e8ee
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x22
cmp esi, ebx
je 0x456782
fld dword [0x4aef58]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x24]
push ecx
fld dword [ebp - 0x6c]
fstp dword [ebp - 0x20]
fldz
fst dword [ebp - 0x1c]
fstp dword [ebp - 0x18]
call fcn.0044c090
fld1
mov dword [esi], 0x4adac4
mov dword [esi + 0x70], ebx
mov dword [esi + 0x80], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x74], ebx
fstp dword [esi + 0x94]
mov dword [esi + 0x84], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov dword [ebp - 0x50], esi
jmp 0x456785
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 7
mov eax, 0x4adf34
cmp dword [ebp - 0x64], ebx
jne 0x456798
mov eax, 0x4adf64
xor edx, edx
mov ecx, eax
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], dx
lea esi, [ecx + 2]
lea ecx, [ecx]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x4567b0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040e520
mov byte [ebp - 4], 0x23
mov ecx, esi
mov esi, dword [ebp - 0x50]
push 1
call fcn.0044e810
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x4567ee
mov eax, dword [ebp - 0x30]
push eax
call fcn.0046e5ca
add esp, 4
mov ecx, dword [ebp - 0x50]
push ecx
mov eax, edi
call fcn.0044c440
mov esi, dword [ebp - 0x60]
push edi
mov eax, esi
call fcn.0044c440
cmp byte [edi + 0xc4], 1
je 0x456866
lea edx, [ebp - 0x2c]
mov byte [edi + 0xc4], 1
mov dword [ebp - 0x2c], 0x4adcb4
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], edx
mov byte [ebp - 4], 0x24
mov eax, dword [0x4cfa0c]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.00402620
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
je 0x45685c
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
lea eax, [ebp - 0x2c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call edx
mov dword [edi + 0xc8], 3
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x68]
add eax, 0xfffffff0
mov dword [esi + 0x94], edi
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45688f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0046e5d5
mov esp, ebp
pop ebp
ret 4