Function at 0x455300
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x497bd2
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.0044bb00
xor ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [esi + 0x70]
mov dword [esi], 0x4adddc
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 1
push 0x24
mov dword [eax], 0x4a8930
call fcn.0046e3ae
add esp, 4
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x455373
push eax
call fcn.00420900
mov esi, eax
jmp 0x455375
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.00420da0
push esi
push esi
push edi
call fcn.00448760
mov ecx, dword [ebp - 0x50]
add esp, 0xc
mov dword [ecx], 0x4a8880
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 [0x4aec20]
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.0046e3ae
mov esi, eax
add esp, 4
mov dword [ebp - 0x68], esi
mov byte [ebp - 4], 4
cmp esi, ebx
je 0x4553f7
lea ecx, [ebp - 0x78]
push ecx
call fcn.0044bb00
mov dword [esi], 0x4ad7b4
mov eax, esi
jmp 0x4553f9
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.0044beb0
push 0x98
call fcn.0046e3ae
mov esi, eax
add esp, 4
mov dword [ebp - 0x68], esi
mov byte [ebp - 4], 5
cmp esi, ebx
je 0x4554a5
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.0044bb00
fld1
mov dword [esi], 0x4ad80c
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 0x4554a7
xor edi, edi
mov byte [ebp - 4], 3
xor eax, eax
mov word [ebp - 0x30], ax
push 8
mov eax, 0x4ad1c4
lea esi, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
call fcn.0040d690
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.0044c340
mov esi, eax
mov dword [edi + 0x70], esi
cmp esi, ebx
je 0x455520
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 0x4554f6
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 0x455517
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 0x455536
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0046e08a
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.0044beb0
test byte [sym.Install.exe____B_1__get_instance___singleton_VCFpSysLanguage___serialization_boost__CAAAVCFpSysLanguage__XZ_51], 1
jne 0x455585
or dword [sym.Install.exe____B_1__get_instance___singleton_VCFpSysLanguage___serialization_boost__CAAAVCFpSysLanguage__XZ_51], 1
push 0x49bd20
mov byte [sym.Install.exe__t__1__get_instance___singleton_VCFpSysLanguage___serialization_boost__CAAAVCFpSysLanguage__XZ_4V__singleton_wrapp], bl
mov byte [0x4d0076], bl
call fcn.0046e358
add esp, 4
mov esi, sym.Install.exe__t__1__get_instance___singleton_VCFpSysLanguage___serialization_boost__CAAAVCFpSysLanguage__XZ_4V__singleton_wrapp
call fcn.004115d0
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.0046e3ae
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 8
cmp esi, ebx
je 0x455627
fld dword [0x4aed78]
lea eax, [ebp - 0x24]
fstp dword [ebp - 0x24]
push eax
fld dword [0x4aed74]
fstp dword [ebp - 0x20]
fldz
fst dword [ebp - 0x1c]
fstp dword [ebp - 0x18]
call fcn.0044bb00
fld1
mov dword [esi], 0x4ad80c
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 0x455629
xor edi, edi
mov byte [ebp - 4], 7
mov eax, 0x4adb70
cmp dword [ebp - 0x64], ebx
jne 0x45563c
mov eax, 0x4adb84
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 0x455651
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040d690
mov ecx, esi
push 1
mov esi, edi
mov byte [ebp - 4], 9
call fcn.0044e0c0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x45568e
mov edx, dword [ebp - 0x30]
push edx
call fcn.0046e08a
add esp, 4
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044beb0
fld dword [0x4aed78]
fstp dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
fld dword [0x4aed70]
mov dword [ebp - 0x24], eax
fstp dword [ebp - 0x58]
mov ecx, dword [ebp - 0x58]
fld dword [0x4aed6c]
push 0xf4
fstp dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
fld dword [0x4aed68]
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.0046e3ae
mov edi, eax
add esp, 4
mov dword [ebp - 0x50], edi
mov byte [ebp - 4], 0xa
cmp edi, ebx
je 0x455718
fld dword [0x4a48f4]
mov edx, dword [0x4c88b8]
sub esp, 8
fstp dword [esp + 4]
mov ecx, esp
mov dword [ebp - 0x6c], esp
push edx
call fcn.00401c30
lea eax, [ebp - 0x24]
push eax
call fcn.004574f0
mov esi, eax
jmp 0x45571a
xor esi, esi
mov byte [ebp - 4], 7
mov edi, dword [ebp - 0x60]
push esi
mov eax, edi
call fcn.0044beb0
push 0xcc
mov dword [edi + 0x80], esi
call fcn.0046e3ae
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0xb
cmp eax, ebx
je 0x455779
fld dword [0x4aed64]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x24]
push ecx
fld dword [0x4aed70]
push eax
fstp dword [ebp - 0x20]
fld dword [0x4aed60]
fstp dword [ebp - 0x1c]
fld dword [0x4aed68]
fstp dword [ebp - 0x18]
call fcn.0044eb70
mov edi, eax
jmp 0x45577b
xor edi, edi
mov byte [ebp - 4], 7
mov eax, 0x4adb9c
cmp dword [ebp - 0x64], ebx
jne 0x45578e
mov eax, 0x4adbb0
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 0x4557b1
sub ecx, dword [ebp - 0x50]
sar ecx, 1
push ecx
call fcn.0040d690
call fcn.00450270
mov ecx, dword [ebp - 0x60]
mov eax, 0x4569f0
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.00456bf0
lea ecx, [edi + 0xb4]
lea eax, [ebp - 0x4c]
lea edx, [ebp - 0x70]
mov byte [ebp - 4], 0xe
call fcn.00412e10
mov eax, dword [ebp - 0x6c]
cmp eax, ebx
je 0x455825
mov ecx, eax
add eax, 8
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x455825
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
lea eax, [ebp - 0x4c]
push eax
mov byte [ebp - 4], 7
call fcn.004486d0
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044beb0
push 0x98
call fcn.0046e3ae
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0xf
cmp esi, ebx
je 0x4558b4
fld dword [0x4aed78]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x24]
push ecx
fld dword [0x4aed5c]
fstp dword [ebp - 0x20]
fldz
fst dword [ebp - 0x1c]
fstp dword [ebp - 0x18]
call fcn.0044bb00
fld1
mov dword [esi], 0x4ad80c
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 0x4558b6
xor edi, edi
mov byte [ebp - 4], 7
mov eax, 0x4adbc8
cmp dword [ebp - 0x64], ebx
jne 0x4558c9
mov eax, 0x4adbdc
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 0x4558e0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040d690
mov ecx, esi
push 1
mov esi, edi
mov byte [ebp - 4], 0x10
call fcn.0044e0c0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x45591d
mov eax, dword [ebp - 0x30]
push eax
call fcn.0046e08a
add esp, 4
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044beb0
fld dword [0x4aed78]
fstp dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
fld dword [0x4aed58]
mov dword [ebp - 0x24], ecx
fstp dword [ebp - 0x58]
mov edx, dword [ebp - 0x58]
fld dword [0x4aed6c]
push 0xf4
fstp dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
fld dword [0x4aed68]
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.0046e3ae
mov edi, eax
add esp, 4
mov dword [ebp - 0x50], edi
mov byte [ebp - 4], 0x11
cmp edi, ebx
je 0x4559a7
fld dword [0x4a48f4]
mov edx, dword [0x4c88b8]
sub esp, 8
fstp dword [esp + 4]
mov ecx, esp
mov dword [ebp - 0x6c], esp
push edx
call fcn.00401c30
lea eax, [ebp - 0x24]
push eax
call fcn.004574f0
mov esi, eax
jmp 0x4559a9
xor esi, esi
mov byte [ebp - 4], 7
mov edi, dword [ebp - 0x60]
push esi
mov eax, edi
call fcn.0044beb0
push 0xcc
mov dword [edi + 0x84], esi
call fcn.0046e3ae
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x12
cmp eax, ebx
je 0x455a08
fld dword [0x4aed64]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x24]
push ecx
fld dword [0x4aed58]
push eax
fstp dword [ebp - 0x20]
fld dword [0x4aed60]
fstp dword [ebp - 0x1c]
fld dword [0x4aed68]
fstp dword [ebp - 0x18]
call fcn.0044eb70
mov edi, eax
jmp 0x455a0a
xor edi, edi
mov byte [ebp - 4], 7
mov eax, 0x4adb9c
cmp dword [ebp - 0x64], ebx
jne 0x455a1d
mov eax, 0x4adbb0
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 0x455a40
sub ecx, dword [ebp - 0x50]
sar ecx, 1
push ecx
call fcn.0040d690
call fcn.00450270
mov ecx, dword [ebp - 0x60]
mov eax, 0x456a90
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.00456bf0
lea ecx, [edi + 0xb4]
lea eax, [ebp - 0x4c]
lea edx, [ebp - 0x70]
mov byte [ebp - 4], 0x15
call fcn.00412e10
mov eax, dword [ebp - 0x6c]
cmp eax, ebx
je 0x455ab4
mov ecx, eax
add eax, 8
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x455ab4
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
lea eax, [ebp - 0x4c]
push eax
mov byte [ebp - 4], 7
call fcn.004486d0
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044beb0
cmp dword [ebp - 0x64], ebx
je 0x455ad3
fld1
jmp 0x455ad9
fld dword [str.xAG]
push 0xcc
fstp dword [ebp - 0x6c]
call fcn.0046e3ae
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x16
cmp eax, ebx
je 0x455b26
fld dword [0x4aed78]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x24]
push ecx
fld dword [0x4aed54]
push eax
fstp dword [ebp - 0x20]
fld dword [0x4aed50]
fstp dword [ebp - 0x1c]
fld dword [0x4aeca4]
fstp dword [ebp - 0x18]
call fcn.004515a0
mov edi, eax
jmp 0x455b28
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, 0x4ad20c
mov word [esi], dx
call fcn.0040d690
call fcn.00450270
cmp byte [edi + 0xc4], 1
je 0x455bbb
lea eax, [ebp - 0x2c]
mov byte [edi + 0xc4], 1
mov dword [ebp - 0x2c], 0x4ad9fc
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x17
mov ecx, dword [0x4cfa6c]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.00402600
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
je 0x455bb1
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.0046e3ae
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x18
cmp esi, ebx
je 0x455c32
fld dword [0x4aeca0]
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.0044bb00
fld1
mov dword [esi], 0x4ad80c
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 0x455c35
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 7
mov eax, 0x4adbf4
cmp dword [ebp - 0x64], ebx
jne 0x455c48
mov eax, str.___n_a__D
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 0x455c60
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040d690
mov byte [ebp - 4], 0x19
mov ecx, esi
mov esi, dword [ebp - 0x50]
push 1
call fcn.0044e0c0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x455c9e
mov edx, dword [ebp - 0x30]
push edx
call fcn.0046e08a
add esp, 4
mov eax, dword [ebp - 0x50]
push eax
mov eax, edi
call fcn.0044beb0
mov esi, dword [ebp - 0x60]
push edi
mov eax, esi
call fcn.0044beb0
mov dword [esi + 0x88], edi
mov byte [edi + 0x3a], bl
cmp dword [ebp - 0x64], ebx
je 0x455cca
fld dword [0x4aed4c]
jmp 0x455cd0
fld dword [0x4aed48]
fstp dword [ebp - 0x50]
push 0xcc
fld dword [0x4aed78]
fstp dword [ebp - 0x24]
fld dword [0x4aed54]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x50]
fadd qword [0x4aed40]
fstp dword [ebp - 0x1c]
fld dword [0x4aed00]
fstp dword [ebp - 0x18]
call fcn.0046e3ae
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x1a
cmp eax, ebx
je 0x455d20
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.004515a0
mov edi, eax
jmp 0x455d22
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, 0x4ad20c
mov word [esi], dx
call fcn.0040d690
call fcn.00450270
cmp byte [edi + 0xc4], 1
je 0x455db5
lea eax, [ebp - 0x2c]
mov byte [edi + 0xc4], 1
mov dword [ebp - 0x2c], 0x4ad9fc
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x1b
mov ecx, dword [0x4cfa6c]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.00402600
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
je 0x455dab
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.0046e3ae
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x1c
cmp esi, ebx
je 0x455e2c
fld dword [0x4aeca0]
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.0044bb00
fld1
mov dword [esi], 0x4ad80c
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 0x455e2f
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 7
mov eax, 0x4adc18
cmp dword [ebp - 0x64], ebx
jne 0x455e42
mov eax, 0x4adc30
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 0x455e57
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040d690
mov byte [ebp - 4], 0x1d
mov ecx, esi
mov esi, dword [ebp - 0x50]
push 1
call fcn.0044e0c0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x455e95
mov edx, dword [ebp - 0x30]
push edx
call fcn.0046e08a
add esp, 4
mov eax, dword [ebp - 0x50]
push eax
mov eax, edi
call fcn.0044beb0
mov esi, dword [ebp - 0x60]
push edi
mov eax, esi
call fcn.0044beb0
mov dword [esi + 0x8c], edi
cmp dword [ebp - 0x64], ebx
je 0x455ebe
fld dword [0x4aed38]
jmp 0x455ec4
fld dword [0x4aed34]
fstp dword [ebp - 0x50]
push 0xcc
fld dword [0x4aed30]
fstp dword [ebp - 0x24]
fld dword [0x4aed54]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x50]
fadd qword [0x4aed40]
fstp dword [ebp - 0x1c]
fld dword [0x4aed00]
fstp dword [ebp - 0x18]
call fcn.0046e3ae
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x1e
cmp eax, ebx
je 0x455f14
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.004515a0
mov edi, eax
jmp 0x455f16
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, 0x4ad20c
mov word [esi], dx
call fcn.0040d690
call fcn.00450270
push 0x98
call fcn.0046e3ae
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x1f
cmp esi, ebx
je 0x455fbd
fld dword [0x4aeca0]
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.0044bb00
fld1
mov dword [esi], 0x4ad80c
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 0x455fc0
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 7
mov eax, 0x4adc50
cmp dword [ebp - 0x64], ebx
jne 0x455fd3
mov eax, 0x4adc64
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 0x455ff0
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x455ff0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040d690
mov byte [ebp - 4], 0x20
mov ecx, esi
mov esi, dword [ebp - 0x50]
push 1
call fcn.0044e0c0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x45602e
mov edx, dword [ebp - 0x30]
push edx
call fcn.0046e08a
add esp, 4
mov eax, dword [ebp - 0x50]
push eax
mov eax, edi
call fcn.0044beb0
mov eax, dword [ebp - 0x60]
push edi
call fcn.0044beb0
call fcn.00456340
cmp eax, 1
jne 0x456059
mov bl, al
mov esi, edi
call fcn.00451810
xor ebx, ebx
jmp 0x45606d
cmp eax, ebx
jne 0x45606a
xor bl, bl
mov esi, edi
call fcn.00451810
xor ebx, ebx
jmp 0x45606d
mov byte [edi + 0x3a], bl
mov ecx, dword [ebp - 0x60]
mov dword [ecx + 0x90], edi
cmp dword [ebp - 0x64], ebx
je 0x456083
fld dword [0x4aed38]
jmp 0x456089
fld dword [0x4aed34]
fstp dword [ebp - 0x50]
push 0xcc
fld dword [0x4aed78]
fstp dword [ebp - 0x24]
fld dword [0x4aed2c]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x50]
fadd qword [0x4aed40]
fstp dword [ebp - 0x1c]
fld dword [0x4aed00]
fstp dword [ebp - 0x18]
call fcn.0046e3ae
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x21
cmp eax, ebx
je 0x4560d9
lea edx, [ebp - 0x24]
push edx
push eax
call fcn.004515a0
mov edi, eax
jmp 0x4560db
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, 0x4ad20c
call fcn.0040d690
call fcn.00450270
push 0x98
call fcn.0046e3ae
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x22
cmp esi, ebx
je 0x456182
fld dword [0x4aeca0]
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.0044bb00
fld1
mov dword [esi], 0x4ad80c
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 0x456185
mov dword [ebp - 0x50], ebx
mov byte [ebp - 4], 7
mov eax, 0x4adc7c
cmp dword [ebp - 0x64], ebx
jne 0x456198
mov eax, 0x4adcac
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 0x4561b0
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.0040d690
mov byte [ebp - 4], 0x23
mov ecx, esi
mov esi, dword [ebp - 0x50]
push 1
call fcn.0044e0c0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 8
jb 0x4561ee
mov eax, dword [ebp - 0x30]
push eax
call fcn.0046e08a
add esp, 4
mov ecx, dword [ebp - 0x50]
push ecx
mov eax, edi
call fcn.0044beb0
mov esi, dword [ebp - 0x60]
push edi
mov eax, esi
call fcn.0044beb0
cmp byte [edi + 0xc4], 1
je 0x456266
lea edx, [ebp - 0x2c]
mov byte [edi + 0xc4], 1
mov dword [ebp - 0x2c], 0x4ad9fc
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], edx
mov byte [ebp - 4], 0x24
mov eax, dword [0x4cfa6c]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.00402600
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
je 0x45625c
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 0x45628f
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.0046e095
mov esp, ebp
pop ebp
ret 4