Function at 0x457bc8
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 4], ebx
mov byte [ebp - 9], cl
mov dword [ebp - 8], edx
mov edi, eax
xor eax, eax
push ebp
push 0x457e90
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [edi + 0x3a], 0
je 0x457e72
lea eax, [ebp - 4]
mov edx, dword [edi + 0x30]
call fcn.00406048
mov eax, edi
call fcn.0045adac
test eax, eax
jle 0x457c1b
mov eax, edi
call fcn.00458154
mov dword [ebp - 0x2c], eax
jmp 0x457c65
cmp word [edi + 0x5c], 0
je 0x457c65
mov ebx, dword [edi + 0x60]
test ebx, ebx
je 0x457c41
cmp dword [ebx + 0x60], 0
jne 0x457c41
mov eax, dword [ebx + 4]
mov edx, dword [0x4568d4]
call fcn.00404428
test al, al
jne 0x457c65
push dword [ebp - 4]
push 0x457eac
lea edx, [ebp - 0x44]
movzx eax, word [edi + 0x5c]
call fcn.0045709c
push dword [ebp - 0x44]
lea eax, [ebp - 4]
mov edx, 3
call fcn.004064a8
call fcn.00408c44
cmp al, 4
jb 0x457de8
mov eax, dword [0x56bb70]
cmp dword [eax], 1
jne 0x457c86
mov eax, dword [0x56b4e8]
cmp dword [eax], 4
jle 0x457c8f
mov dword [ebp - 0x40], 0x30
jmp 0x457c96
mov dword [ebp - 0x40], 0x2c
mov dword [ebp - 0x3c], 0x3f
mov eax, edi
call fcn.0045b378
mov esi, eax
mov eax, edi
call fcn.0045a524
mov dword [ebp - 0x10], eax
test esi, esi
je 0x457cc0
cmp byte [esi + 0x3c], 0
jne 0x457cd6
cmp dword [ebp - 0x10], 0
jne 0x457cd6
mov ebx, dword [edi + 0x48]
test ebx, ebx
je 0x457cd2
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
je 0x457cd6
xor eax, eax
jmp 0x457cd8
mov al, 1
mov ebx, eax
mov eax, dword [edi + 0x60]
mov eax, dword [eax + 4]
mov edx, dword [0x4568d4]
call fcn.00404428
test al, al
je 0x457d2e
xor edx, edx
mov eax, 6
call fcn.00412bd0
test al, al
je 0x457d2e
call fcn.00474d38
cmp byte [eax + 5], 0
je 0x457d2e
test bl, bl
je 0x457d26
cmp dword [ebp - 0x10], 0
je 0x457d1a
cmp dword [edi + 0x3c], 0xffffffff
jne 0x457d2a
cmp dword [edi + 0x48], 0
jne 0x457d2a
cmp byte [esi + 0x3c], 0
jne 0x457d2a
xor eax, eax
jmp 0x457d2c
mov al, 1
mov ebx, eax
mov eax, dword [edi + 0x30]
mov edx, 0x457ebc
call fcn.00406650
sete al
and eax, 0x7f
mov eax, dword [eax*4 + 0x568a48]
movzx edx, byte [edi + 0x39]
mov edx, dword [edx*4 + 0x568a40]
movzx ecx, byte [edi + 0x44]
or edx, dword [ecx*4 + 0x568a1c]
or eax, edx
movzx edx, byte [ebp - 9]
or eax, dword [edx*4 + 0x568a50]
movzx edx, bl
or eax, dword [edx*4 + 0x568a58]
mov dword [ebp - 0x38], eax
movzx eax, byte [edi + 0x34]
mov eax, dword [eax*4 + 0x568a28]
movzx edx, byte [edi + 0x35]
or eax, dword [edx*4 + 0x568a38]
movzx edx, byte [edi + 0x36]
or eax, dword [edx*4 + 0x568a30]
mov dword [ebp - 0x34], eax
movzx eax, word [edi + 0x4c]
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x24], eax
mov eax, edi
call fcn.0045adac
test eax, eax
jle 0x457dc7
mov eax, edi
call fcn.00458154
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
call fcn.00406080
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x40]
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_CreateThread
jmp 0x457e72
mov eax, dword [edi + 0x30]
mov edx, 0x457ebc
call fcn.00406650
sete al
and eax, 0x7f
mov ebx, dword [eax*4 + 0x568a14]
movzx eax, byte [edi + 0x44]
mov eax, dword [eax*4 + 0x568a08]
movzx edx, byte [edi + 0x34]
or eax, dword [edx*4 + 0x5689f8]
movzx edx, byte [edi + 0x35]
or eax, dword [edx*4 + 0x568a00]
or ebx, eax
or ebx, 0x400
mov eax, edi
call fcn.0045adac
test eax, eax
jle 0x457e58
mov eax, dword [edi + 0x30]
call fcn.00406080
push eax
mov eax, edi
call fcn.00458154
push eax
or ebx, 0x10
push ebx
push 0xffffffffffffffff
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_CreateMutexW
jmp 0x457e72
mov eax, dword [ebp - 4]
call fcn.00406080
push eax
movzx eax, word [edi + 0x4c]
push eax
push ebx
push 0xffffffffffffffff
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_CreateMutexW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x457e97
lea eax, [ebp - 0x44]
call fcn.00405fe4
lea eax, [ebp - 4]
call fcn.00405fe4
ret