Function at 0x403f00
Capabilities:
Create thread
Resume thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44db08
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x4634b0]
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 edi, ecx
mov dword [ebp - 0x3c], edi
mov eax, dword [ebp + 8]
push dword [ebp - 0x3c]
mov edx, dword [eax + 0x40]
lea ebx, [eax + 0x3c]
push ecx
mov ecx, dword [ebx]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x30], ebx
call fcn.00407a20
mov eax, dword [ebx]
add esp, 8
mov dword [ebx + 4], eax
push 0
push 4
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push dword [edi + 0x54]
push 0
push 0
push dword [edi + 0x58]
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi + 0xc]
mov ecx, dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [eax], 0
je 0x403fa2
jmp 0x403f90
push 0
call ecx
mov eax, dword [edi + 0xc]
mov ecx, dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [eax], 0
jne 0x403f90
mov eax, dword [edi + 0xc]
mov dword [eax + 4], 0xe
mov eax, dword [edi + 0xc]
mov dword [eax], 1
mov eax, dword [edi + 0xc]
cmp dword [eax], 2
je 0x403fd2
lea ecx, [ecx]
push 0
call ecx
mov eax, dword [edi + 0xc]
mov ecx, dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [eax], 2
jne 0x403fc0
mov eax, dword [edi + 0xc]
mov esi, dword [ebp - 0x40]
mov dword [eax], 0
mov eax, dword [edi + 0xc]
mov esi, dword [esi + 4]
cmp dword [eax], 0
je 0x404000
lea esp, [esp]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
jne 0x403ff0
mov eax, dword [edi + 0xc]
mov dword [eax + 4], esi
mov eax, dword [edi + 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [eax], 1
mov eax, dword [edi + 0xc]
cmp dword [eax], 2
je 0x40402c
lea ecx, [ecx]
push 0
call esi
mov eax, dword [edi + 0xc]
cmp dword [eax], 2
jne 0x404020
mov eax, dword [edi + 0xc]
mov dword [eax], 0
mov eax, dword [edi + 0xc]
cmp dword [eax], 1
je 0x40404c
lea ecx, [ecx]
push 0
call esi
mov eax, dword [edi + 0xc]
cmp dword [eax], 1
jne 0x404040
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x4c], 0
mov ecx, dword [eax + 4]
mov dword [ebp - 0x50], ecx
mov dword [eax], 2
test ecx, ecx
je 0x4043a0
lea ebx, [ebx]
push 0x20
call fcn.00434316
mov ebx, eax
mov dword [ebp - 0x48], eax
add esp, 4
test ebx, ebx
je 0x4040a4
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
jmp 0x4040a9
xor ebx, ebx
mov dword [ebp - 0x48], ebx
mov eax, dword [ebp - 0x40]
mov dword [ebx + 0x1c], eax
mov eax, dword [edi + 0xc]
cmp dword [eax], 1
je 0x4040c3
push 0
call esi
mov eax, dword [edi + 0xc]
cmp dword [eax], 1
jne 0x4040b7
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 4]
mov dword [eax], 2
lea eax, [ebp - 0x2c]
mov dword [ebx + 0x18], ecx
mov ecx, edi
push eax
call fcn.004014a0
mov esi, eax
cmp ebx, esi
je 0x404144
cmp dword [ebx + 0x14], 0x10
jb 0x4040f3
push dword [ebx]
call fcn.00434302
add esp, 4
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
cmp dword [esi + 0x14], 0x10
jae 0x40411d
mov eax, dword [esi + 0x10]
inc eax
je 0x404127
push eax
push esi
push ebx
call fcn.00434370
add esp, 0xc
jmp 0x404127
mov eax, dword [esi]
mov dword [ebx], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x14], eax
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
cmp dword [ebp - 0x18], 0x10
jb 0x404155
push dword [ebp - 0x2c]
call fcn.00434302
add esp, 4
mov edi, dword [ebp - 0x30]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
je 0x40422f
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x44], edi
jmp 0x404170
cmp dword [ebx + 0x14], 0x10
mov edx, dword [eax]
jb 0x40417a
mov ebx, dword [ebx]
cmp dword [edx + 0x14], 0x10
mov esi, dword [edx + 0x10]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x38], esi
jb 0x40418b
mov edx, dword [edx]
cmp esi, dword [ebp - 0x44]
cmovb edi, esi
test edi, edi
je 0x4041fe
sub edi, 4
jb 0x4041b4
lea ebx, [ebx]
mov esi, dword [edx]
cmp esi, dword [ebx]
jne 0x4041b9
add ebx, 4
add edx, 4
mov dword [ebp - 0x34], ebx
sub edi, 4
jae 0x4041a0
cmp edi, 0xfffffffc
je 0x4041f0
mov esi, dword [ebp - 0x34]
mov bl, byte [edx]
cmp bl, byte [esi]
jne 0x4041e9
cmp edi, 0xfffffffd
je 0x4041f0
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
jne 0x4041e9
cmp edi, 0xfffffffe
je 0x4041f0
mov bl, byte [edx + 2]
cmp bl, byte [esi + 2]
jne 0x4041e9
cmp edi, 0xffffffff
je 0x4041f0
mov dl, byte [edx + 3]
cmp dl, byte [esi + 3]
je 0x4041f0
sbb edx, edx
or edx, 1
jmp 0x4041f2
xor edx, edx
test edx, edx
je 0x4041fb
mov edi, dword [ebp - 0x44]
jmp 0x404211
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x44]
cmp esi, edi
jae 0x40420a
or edx, 0xffffffff
jmp 0x404211
xor edx, edx
cmp esi, edi
setne dl
test edx, edx
sete dl
test dl, dl
jne 0x404379
mov ebx, dword [ebp - 0x48]
add eax, 4
cmp eax, ecx
jne 0x404170
mov edi, dword [ebp - 0x30]
mov esi, ebx
mov dword [ebp - 0x34], esi
mov dword [ebp - 4], 0
lea eax, [ebp - 0x34]
mov ecx, dword [edi + 4]
cmp eax, ecx
jae 0x4042db
mov eax, dword [edi]
lea edx, [ebp - 0x34]
cmp eax, edx
ja 0x4042db
mov ebx, dword [ebp - 0x30]
mov edi, edx
sub edi, eax
sar edi, 2
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x4042bd
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x4042bd
mov eax, ebx
mov ebx, dword [eax]
sub ecx, ebx
sar ecx, 2
mov eax, 0x3fffffff
sub eax, ecx
cmp eax, 1
jb 0x404393
inc ecx
sub edx, ebx
sar edx, 2
mov eax, 0x3fffffff
mov dword [ebp - 0x38], ecx
mov ecx, edx
shr ecx, 1
sub eax, ecx
cmp eax, edx
jae 0x4042a8
xor edx, edx
jmp 0x4042aa
add edx, ecx
cmp edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
cmovb edx, dword [ebp - 0x38]
push edx
call fcn.00405fd0
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebx]
lea ecx, [eax + edi*4]
mov edi, dword [ebp - 0x30]
mov edx, dword [edi + 4]
test edx, edx
je 0x404340
mov eax, dword [ecx]
mov dword [ecx], 0
mov esi, dword [ebp - 0x34]
mov dword [edx], eax
jmp 0x404340
mov edx, dword [edi + 8]
cmp ecx, edx
jne 0x404335
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x404335
mov edi, dword [edi]
mov eax, 0x3fffffff
sub ecx, edi
sar ecx, 2
sub eax, ecx
cmp eax, 1
jb 0x404393
inc ecx
sub edx, edi
sar edx, 2
mov eax, 0x3fffffff
mov dword [ebp - 0x38], ecx
mov ecx, edx
shr ecx, 1
sub eax, ecx
cmp eax, edx
jae 0x404321
xor edx, edx
jmp 0x404323
add edx, ecx
cmp edx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x30]
mov ecx, edi
cmovb edx, dword [ebp - 0x38]
push edx
call fcn.00405fd0
mov eax, dword [edi + 4]
test eax, eax
je 0x404340
xor esi, esi
mov dword [eax], ebx
add dword [edi + 4], 4
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x404379
cmp dword [esi + 0x14], 0x10
jb 0x40435f
push dword [esi]
call fcn.00434302
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
push esi
mov byte [esi], 0
call fcn.00434302
add esp, 4
mov eax, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x4c], eax
cmp eax, dword [ebp - 0x50]
jae 0x40439d
mov edi, dword [ebp - 0x3c]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x404070
push 0x458e18
call fcn.0041e5cf
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebx]
mov byte [ebp - 0x3c], 0
push dword [ebp - 0x3c]
mov edx, dword [eax + 0x40]
mov eax, edx
sub eax, ecx
sar eax, 2
push eax
call fcn.004076d0
add esp, 8
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.00434307
mov esp, ebp
pop ebp
ret 4