Function at 0x4e5870
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x65641e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x3c], esi
xor ebx, ebx
mov dword [ebp - 0x18], ebx
push 0x7f02
push ebx
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 4], ebx
cmp dword [ebp + 8], 0xffff0000
jne 0x4e5d91
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov byte [ebp - 4], 1
cmp dword [esi + 0x37d8], ebx
jne 0x4e59e6
push ebx
cmp byte [ebp + 0xc], bl
je 0x4e59ab
lea eax, [ebp - 0x38]
push eax
call fcn.004e35d0
add esp, 8
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x34]
cmp edi, eax
je 0x4e59e9
cmp dword [edi], ebx
je 0x4e5911
mov eax, dword [edi]
mov eax, dword [eax]
jmp 0x4e5913
xor eax, eax
lea ecx, [esi + 0x30c]
push ebx
push eax
push 0xffff0000
call fcn.004de9e0
test eax, eax
jne 0x4e59a3
push 0x28
call fcn.00611c8b
add esp, 4
mov ebx, eax
mov dword [ebp + 0xc], ebx
mov byte [ebp - 4], 2
test ebx, ebx
je 0x4e596c
push 0
cmp dword [edi], 0
je 0x4e594d
mov eax, dword [edi]
mov eax, dword [eax]
jmp 0x4e594f
xor eax, eax
push ecx
mov ecx, esp
mov dword [ebp - 0x5c], esp
push eax
call fcn.0040bea0
mov byte [ebp - 4], 3
mov byte [ebp - 4], 2
mov ecx, ebx
call fcn.004dd6b0
jmp 0x4e596e
xor eax, eax
mov byte [ebp - 4], 1
cmp dword [edi], 0
je 0x4e597d
mov ecx, dword [edi]
mov ecx, dword [ecx]
jmp 0x4e597f
xor ecx, ecx
push 0xffff0002
mov edx, dword [ebp + 8]
push edx
push 1
push eax
push 0
push 0
push 0
push 0
push ecx
push 0x67
lea ecx, [esi + 0x30c]
call fcn.004dd170
xor ebx, ebx
add edi, 4
jmp 0x4e58f9
push ebx
push esi
push 0x4ddda0
push ebx
push ebx
call fcn.00615455
add esp, 0x18
mov esi, dword [ebp - 0x34]
sub esi, dword [ebp - 0x38]
sar esi, 2
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x38]
call fcn.004e3590
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 0x34]
mov ecx, dword [esi + 0x37d8]
cmp ecx, 1
je 0x4e5a02
cmp ecx, 2
je 0x4e5a02
cmp ecx, 3
jne 0x4e5d68
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [esi + 0x260]
add ecx, 0x368
call fcn.00438310
mov byte [ebp - 0x11], 1
lea ecx, [ebp - 0x24]
call fcn.00444e20
test eax, eax
je 0x4e5a5e
sub esp, 8
mov dword [ebp + 0xc], esp
mov eax, esp
mov ecx, dword [ebp - 0x24]
mov dword [eax], ecx
mov edx, dword [ebp - 0x20]
mov dword [eax + 4], edx
mov ecx, dword [esi + 0x260]
call fcn.004453b0
cmp eax, ebx
je 0x4e5a5e
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x24]
call fcn.004385e0
mov ecx, dword [eax]
mov dword [ebp - 0x24], ecx
mov byte [ebp - 0x11], 0
mov eax, dword [esi + 0x260]
mov edx, dword [eax + 0x320]
mov dword [ebp + 0xc], edx
mov eax, dword [eax + 0x31c]
mov dword [ebp - 0x28], eax
mov ebx, 8
cmp eax, dword [ebp + 0xc]
je 0x4e5d65
push eax
lea ecx, [ebp - 0xac]
call fcn.004572e0
mov byte [ebp - 4], 4
push 0x28
call fcn.00611c8b
add esp, 4
mov edi, eax
mov dword [ebp - 0x5c], edi
mov byte [ebp - 4], 5
test edi, edi
je 0x4e5b23
or dword [ebp - 0x18], 1
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0xac]
call fcn.00445070
sub esp, 0x10
mov ecx, esp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
push 1
push 0
lea ecx, [ebp - 0xf4]
push ecx
lea ecx, [ebp - 0xac]
call fcn.0043b590
mov byte [ebp - 4], 6
or dword [ebp - 0x18], 2
cmp dword [eax + 0x14], ebx
jb 0x4e5b01
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.0040bea0
mov dword [ebp - 4], 7
mov byte [ebp - 4], 6
mov ecx, edi
call fcn.004dd770
mov edi, eax
jmp 0x4e5b25
xor edi, edi
mov dword [ebp - 4], ebx
lea edx, [ebp - 0xd8]
push edx
lea ecx, [ebp - 0xac]
call fcn.0043b590
mov dword [ebp - 4], 9
cmp dword [eax + 0x14], ebx
jb 0x4e5b48
mov eax, dword [eax]
push 0xffff0002
mov ecx, dword [ebp + 8]
push ecx
push 1
push edi
push 0
push 0
push 0
push 0
push eax
push 0x67
lea ecx, [esi + 0x30c]
call fcn.004dd170
mov edi, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xd8]
call fcn.00405700
mov dword [ebp - 4], 4
mov ebx, dword [ebp - 0x18]
test bl, 2
je 0x4e5b9b
and ebx, 0xfffffffd
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0xf4]
call fcn.00405700
test bl, 1
je 0x4e5ba6
and ebx, 0xfffffffe
mov dword [ebp - 0x18], ebx
xor eax, eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x58]
push edx
mov ecx, dword [esi + 0x260]
add ecx, 0x364
call fcn.004508a0
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x1c], ebx
cmp ebx, dword [ebp - 0x54]
je 0x4e5d17
mov ecx, ebx
call fcn.00444e20
test eax, eax
je 0x4e5d0f
sub esp, 8
mov dword [ebp - 0x20], esp
mov eax, esp
mov ecx, dword [ebx]
mov dword [eax], ecx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
mov ecx, dword [esi + 0x260]
call fcn.004453b0
mov ecx, ebx
test eax, eax
je 0x4e5c65
lea eax, [ebp - 0xb4]
push eax
call fcn.004385e0
cmp dword [eax], 0
je 0x4e5c57
or dword [ebp - 0x18], 4
lea ecx, [ebp - 0xbc]
push ecx
mov ecx, ebx
call fcn.004385e0
mov ecx, eax
call fcn.00444e20
push eax
lea edx, [ebp - 0x104]
push edx
lea ecx, [ebp - 0xac]
call fcn.00445070
mov ecx, eax
call fcn.00438250
test al, al
je 0x4e5c57
mov al, 1
jmp 0x4e5c59
xor al, al
test byte [ebp - 0x18], 4
je 0x4e5c84
and dword [ebp - 0x18], 0xfffffffb
jmp 0x4e5c84
call fcn.00444e20
push eax
lea edx, [ebp - 0x114]
push edx
lea ecx, [ebp - 0xac]
call fcn.00445070
mov ecx, eax
call fcn.00438250
test al, al
je 0x4e5d0f
cmp byte [ebp - 0x11], 0
je 0x4e5ca0
push 1
push edi
lea ecx, [esi + 0x30c]
call fcn.00467f80
push 2
push edi
lea ecx, [esi + 0x30c]
call fcn.00401f70
lea ecx, [esi + 0x30c]
push edi
call fcn.00401ff0
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_GetParent]
push 1
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push eax
mov ebx, dword [sym.imp.USER32.dll_EnableWindow]
call ebx
push 0x4269
mov ecx, dword [esi + 4]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push eax
call ebx
mov ecx, dword [ebp - 0x78]
mov eax, 0x43d7b7eb
sub ecx, dword [ebp - 0x7c]
imul ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
sete cl
mov byte [esi + 0x26c], cl
mov ebx, dword [ebp - 0x1c]
add ebx, 8
jmp 0x4e5bcd
mov ecx, dword [ebp - 0x78]
sub ecx, dword [ebp - 0x7c]
mov eax, 0x43d7b7eb
imul ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4e5d3e
push 2
push edi
lea ecx, [esi + 0x30c]
call fcn.00401f70
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x58]
call fcn.00473a40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xac]
call fcn.0043ea60
add dword [ebp - 0x28], 0x48
mov eax, dword [ebp - 0x28]
jmp 0x4e5a76
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x38]
sar eax, 2
mov esi, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x38]
call fcn.004e3590
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ebx, [esi + 0x30c]
mov ecx, dword [ebp + 8]
push ecx
mov ecx, ebx
call fcn.00401ef0
test eax, eax
jne 0x4e5db9
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [eax + 0xc], 0
jne 0x4e5e45
push 0x438
call fcn.00611c8b
add esp, 4
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 0xb
test eax, eax
je 0x4e5de6
mov ecx, eax
call fcn.004dc9f0
mov edi, eax
jmp 0x4e5de8
xor edi, edi
mov byte [ebp - 4], 0
mov edx, dword [ebp + 8]
mov dword [edi], edx
mov dword [edi + 0x414], ebx
lea eax, [esi + 0x278]
mov dword [edi + 0x41c], eax
push 0xc
call fcn.00611c8b
add esp, 4
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x4e5e24
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
jmp 0x4e5e26
xor eax, eax
mov byte [ebp - 4], 0
mov dword [eax], esi
mov dword [eax + 8], edi
push 0
push 0
push eax
push 0x4e5290
push 0
push 0
call fcn.00615455
add esp, 0x18
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8