Function at 0x45b0b4
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 4], edi
mov dword [ebp - 8], esi
mov eax, dword [0x4a2420]
cmp eax, 1
je 0x45b7fd
mov eax, dword [0x4a29c8]
test eax, eax
je 0x45b0f7
mov dword [0x4affdc], 0x10
mov dword [0x4affe0], 0x20
mov dword [0x4afe4c], 0
jmp 0x45b10b
mov dword [0x4affdc], 8
mov dword [0x4affe0], 0x10
mov dword [0x4affa4], 3
mov dword [0x4affb0], 0x28
push 0x4b7498
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7498
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b13d
push 0x4b7498
mov dword [0x4affa0], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7498
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b16f
push 0x4b74a0
mov dword [0x4affa8], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b74a0
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b1a1
push 0x4b74ac
mov dword [0x4affac], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b74ac
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b1d3
push 0x4b74d0
mov dword [0x4affb4], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b74d0
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b205
push 0x4b74d8
mov dword [0x4affb8], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b74d8
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b237
push 0x4b74e0
mov dword [0x4affc4], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b74e0
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b269
push 0x4b74f0
mov dword [0x4affcc], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b74f0
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b29b
push 0x4b7504
mov dword [0x4affbc], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7504
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b2cd
push 0x4b7518
mov dword [0x4affd0], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7518
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b2ff
push 0x4b752c
mov dword [0x4affc0], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b752c
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b331
push 0x4b7544
mov dword [0x4affc8], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7544
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b363
push 0x4b7554
mov dword [0x4affd4], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7568
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b395
push 0x4b757c
mov dword [0x4affd8], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b757c
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b3c7
push 0x4b7594
mov dword [0x4aff60], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7594
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b3f9
push 0x4b75b4
mov dword [0x4aff64], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b75b4
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b42b
push 0x4b75c8
mov dword [0x4aff68], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b75dc
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b45d
push 0x4b75f0
mov dword [0x4aff6c], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7608
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b48f
push 0x4b7620
mov dword [0x4aff70], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7620
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b4c1
push 0x4b7628
mov dword [0x4aff74], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7628
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b4f3
push 0x4b7640
mov dword [0x4aff78], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7640
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b525
push 0x4b7594
mov dword [0x4aff7c], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b7594
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b557
push 0x4b764c
mov dword [0x4aff80], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.0046e46e
pop ecx
mov ecx, eax
mov esi, ecx
mov edi, 0x4b764c
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x45b589
mov dword [0x4a2420], 1
mov dword [0x4aff84], ecx
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x4a24b8], eax
cmp eax, 0xffffffff
jne 0x45b5d5
push 0xef
push 0x4b7480
push 5
call fcn.0045809c
add esp, 0xc
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
push 0x18
call fcn.0046e46e
pop ecx
mov dword [0x4a24c0], eax
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x45ad10
call fcn.00450f28
pop ecx
test eax, eax
je 0x45b7e4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x4a24c4], eax
call fcn.0045097c
mov dword [0x4a245c], eax
test eax, eax
je 0x45b7cb
call fcn.00450988
mov dword [0x4a2460], eax
test eax, eax
je 0x45b7b2
call fcn.00450964
mov dword [0x4a2464], eax
test eax, eax
je 0x45b799
call fcn.0045adc4
test eax, eax
je 0x45b780
mov eax, dword [0x4a508c]
test eax, eax
jne 0x45b660
mov eax, dword [0x4a2428]
test eax, eax
je 0x45b6e1
xor eax, eax
mov dword [0x4a24b0], eax
mov dword [0x4a31e0], eax
call fcn.0045aed8
mov eax, dword [0x4affb0]
shl eax, 2
push eax
call fcn.0046e46e
pop ecx
mov dword [0x4a2424], eax
test eax, eax
je 0x45b767
mov eax, dword [0x4affb0]
test eax, eax
jle 0x45b6b0
xor eax, eax
mov edx, dword [0x4a2424]
mov dword [edx + eax*4], 0
add eax, 1
cmp eax, dword [0x4affb0]
jl 0x45b698
call fcn.00455a64
mov esi, eax
test esi, esi
je 0x45b74e
mov edx, dword [0x4a29c8]
test edx, edx
jne 0x45b742
call fcn.0045afb0
test eax, eax
je 0x45b72c
call fcn.00450e68
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
call dword [sym.imp.USER32.dll_CreateMenu]
mov dword [0x4a2428], eax
test eax, eax
je 0x45b716
call fcn.00462e74
test eax, eax
jne 0x45b660
push 0x132
push 0x4b7480
push 7
call fcn.004580ec
add esp, 0xc
jmp 0x45b660
push 0x12c
push 0x4b7480
push 5
call fcn.004580ec
add esp, 0xc
jmp 0x45b6f0
push 0x167
push 0x4b7480
push 5
call fcn.0045809c
add esp, 0xc
jmp 0x45b6d2
push esi
call fcn.00454fdc
pop ecx
jmp 0x45b6c9
push 0x15d
push 0x4b7480
push 5
call fcn.0045809c
add esp, 0xc
jmp 0x45b6bf
push 0x150
push 0x4b7480
push 5
call fcn.004580ec
add esp, 0xc
jmp 0x45b68d
push 0x11f
push 0x4b7480
push 5
call fcn.0045809c
add esp, 0xc
jmp 0x45b64a
push 0x111
push 0x4b7480
push 5
call fcn.0045809c
add esp, 0xc
jmp 0x45b63d
push 0x10b
push 0x4b7480
push 5
call fcn.0045809c
add esp, 0xc
jmp 0x45b62b
push 0x105
push 0x4b7480
push 5
call fcn.0045809c
add esp, 0xc
jmp 0x45b619
push 0xfc
push 0x4b7480
push 5
call fcn.0045809c
add esp, 0xc
jmp 0x45b5fc
push 0x71
push 0x4b7480
push 6
call fcn.0045814c
add esp, 0xc
mov esp, ebp
pop ebp
ret