Function at 0x4056b0
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x11c
mov eax, dword [ebp + 8]
lea ecx, [entry0]
mov dword [ebp - 0x84], 0
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x3c], 1
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0xb0], 1
mov edi, dword [ebp - 0xb0]
mov ebx, dword [ebp - 0x10]
and ebx, 0
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x7c], 0x100000
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x7c]
mov word [ebp - 0xac], 0x2dc6
mov dword [ebp - 0x38], 7
mov byte [ebp - 0x85], 0xf0
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x70], 0x100000
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x68], 0x1c
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x14], 0x14
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x14]
mov byte [ebp - 0xb1], 0xe6
mov byte [ebp - 0xa9], 0xcc
mov byte [ebp - 0x31], 5
mov word [ebp - 0x62], 0x7fe1
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x74], eax
mov dword [0x40bb74], ecx
mov ecx, dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [ebp - 0xfc], ebx
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x108], edi
call ecx
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xec]
add ecx, dword [ebp - 0x74]
mov byte [ebp - 0xb1], 0x54
mov edx, dword [ebp - 0x40]
and edx, 0
mov dword [ebp - 0x40], edx
cmp eax, ecx
jge 0x40595a
lea eax, [ebp - 0xa0]
lea ecx, [ebp - 0x60]
mov dl, 0
mov dh, byte [ebp - 0xa9]
xor dh, 2
mov byte [ebp - 0xa9], dh
sub dl, byte [ebp - 0xb1]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xf8]
mov dword [esp + 8], eax
mov byte [ebp - 0x109], dl
call fcn.00401580
mov ecx, dword [ebp - 0x78]
mov dl, byte [ebp - 0xa9]
or dl, 0x6e
mov dh, byte [ebp - 0x109]
mov byte [ebp - 0xb1], dh
mov byte [ebp - 0xa9], dl
mov esi, dword [ebp - 0xe4]
cmp ecx, esi
mov dword [ebp - 0x110], eax
jne 0x405900
lea eax, [ebp - 0x30]
lea ecx, [ebp - 0xdc]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xf4]
mov dword [esp + 8], eax
call fcn.00401580
lea ecx, [ebp - 0xa9]
mov dl, byte [ebp - 0x31]
mov dh, cl
or dl, dh
mov byte [ebp - 0xa9], dl
mov ecx, dword [ebp - 0xe8]
cmp dword [ebp - 0x74], ecx
mov dword [ebp - 0x114], eax
jne 0x4058f2
mov eax, dword [sym.imp.KERNEL32.DLL_FreeConsole]
call eax
lea ecx, [ebp - 0x8c]
mov dl, byte [ebp - 0x31]
mov dh, cl
and dl, dh
mov byte [ebp - 0x31], dl
mov ecx, dword [ebp - 0xfc]
mov dword [esp], ecx
mov dword [ebp - 0x118], eax
jmp loc.0041a000
mov al, 0x80
sub al, byte [ebp - 0xa9]
mov byte [ebp - 0xa9], al
mov ax, 0
sub ax, word [ebp - 0xac]
mov ecx, dword [sym.imp.KERNEL32.DLL_TlsAlloc]
mov word [ebp - 0x11a], ax
call ecx
mov dx, 0
mov dword [ebp - 0xb8], eax
mov si, word [ebp - 0x11a]
mov word [ebp - 0xac], si
sub dx, word [ebp - 0xac]
mov word [ebp - 0xac], dx
mov dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x104]
add eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x4057e1
lea eax, [ebp - 0x31]
mov cl, byte [ebp - 0xa9]
mov word [ebp - 0xac], 0x2309
mov dl, al
and cl, dl
mov byte [ebp - 0xa9], cl
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0xac]
mov cx, 0x7c09
mov edx, 0
sub edx, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x80]
mov di, word [ebp - 0xac]
sub cx, word [ebp - 0xac]
mov dword [ebp - 0x8c], edx
mov bx, ax
mov word [ebp - 0xac], cx
and di, bx
mov word [ebp - 0xac], di
mov eax, esi
add esp, 0x11c
pop esi
pop edi
pop ebx
pop ebp
ret