Function at 0x41f250
Capabilities:
Create thread
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x485600
mov eax, dword fs:[0]
push eax
sub esp, 0x470
mov eax, dword [0x4ace78]
xor eax, esp
mov dword [esp + 0x46c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ace78]
xor eax, esp
push eax
lea eax, [esp + 0x484]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x498]
mov eax, dword [esp + 0x4a4]
mov esi, ecx
mov ecx, dword [esp + 0x494]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], eax
test ecx, ecx
jne 0x41f2b2
xor eax, eax
jmp 0x41f2c6
mov eax, ecx
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x41f2b7
sub eax, edi
sar eax, 1
push eax
push ecx
lea ebx, [esi + 0x10]
mov ecx, ebx
call fcn.00401810
cmp dword [esi + 0xc], 1
mov ecx, dword [esp + 0x49c]
jle 0x41f8ea
test cl, cl
jne 0x41f8ea
lea ecx, [esp + 0x34]
call fcn.00452d37
xor edi, edi
push ebp
lea ecx, [esi + 0x14]
mov dword [esp + 0x490], edi
call fcn.00401b60
mov dword [esp + 0x30], edi
xor ebp, ebp
lea esp, [esp]
mov eax, dword [ebx]
push eax
mov ecx, esi
call fcn.0041eff0
mov dword [esi + 4], eax
test eax, eax
jge 0x41f3b0
mov eax, dword [ebx]
push 0
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov edi, esp
push eax
call fcn.00401630
add esp, 4
lea ecx, [esp + 0x1c]
add eax, 0x10
push ecx
lea ecx, [esp + 0x37]
mov dword [edi], eax
call fcn.0043a5c0
lea edx, [esp + 0x14]
push ebx
push edx
mov byte [esp + 0x494], 1
call fcn.004088d0
add esp, 8
test al, al
je 0x41f388
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.0041eff0
mov dword [esi + 4], eax
test eax, eax
jl 0x41f388
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebx
call fcn.00401a80
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x48c], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41f3b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esi + 4], 0
jge 0x41f3c0
inc ebp
cmp ebp, 1
jl 0x41f310
mov ecx, dword [esi + 4]
test ecx, ecx
jge 0x41f3e2
lea ecx, [esp + 0x34]
mov dword [esp + 0x48c], 0xffffffff
call fcn.00452e3f
xor eax, eax
jmp 0x41f903
jne 0x41f446
lea ecx, [esp + 0x68]
call fcn.00452d37
mov ecx, dword [esp + 0x24]
push 0
push 0x1000
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x498], 2
call fcn.004531c5
test eax, eax
je 0x41f417
lea ecx, [esp + 0x68]
call fcn.00452cd1
lea ecx, [esp + 0x68]
mov byte [esp + 0x48c], 0
call fcn.00452e3f
lea ecx, [esp + 0x34]
mov dword [esp + 0x48c], 0xffffffff
call fcn.00452e3f
mov eax, 1
jmp 0x41f903
mov eax, ecx
cdq
idiv dword [esi + 0xc]
lea eax, [eax + eax*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
cdq
and edx, 0x3ff
add eax, edx
mov ebx, eax
sar ebx, 0xa
shl ebx, 0xa
cmp ebx, 0xc800
jge 0x41f476
mov ebx, 0xc800
mov eax, ecx
cdq
idiv ebx
mov dword [esi + 8], eax
test edx, edx
je 0x41f486
inc eax
mov dword [esi + 8], eax
cmp dword [esi + 8], 0
jne 0x41f493
mov dword [esi + 8], 1
mov ebp, dword [esp + 0x4a0]
mov edi, dword [esp + 0x18]
push ecx
push ebp
push 0x414
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push ebp
push 0x42d
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esi + 8]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00444949
mov ecx, eax
xor ebp, ebp
add esp, 4
xor eax, eax
cmp dword [esi + 8], ebp
mov dword [esp + 0x2c], ecx
jle 0x41f4ee
mov dword [ecx + eax*4], ebp
inc eax
cmp eax, dword [esi + 8]
jl 0x41f4e5
lea ecx, [esp + 0x44]
call fcn.0044be82
cmp dword [esi + 8], ebp
mov byte [esp + 0x48c], 3
mov dword [esp + 0x20], 0xffffffff
jle 0x41f6d1
mov dword [esp + 0x1c], ebp
call fcn.0044ba42
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x41f69f
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x24]
push ebp
push ecx
lea edx, [esp + 0x1c]
push str._s.part_d
push edx
mov byte [esp + 0x49c], 4
call fcn.00403ae0
mov edi, dword [esi + 4]
sub edi, dword [esp + 0x2c]
add esp, 0x10
cmp edi, ebx
jle 0x41f565
mov edi, ebx
push 0x2c
call fcn.0044491a
add esp, 4
mov dword [esp + 0x7c], eax
mov byte [esp + 0x48c], 5
test eax, eax
je 0x41f5b0
mov ecx, dword [esp + 0x18]
push ecx
push dword [esp + 0x4a4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x10]
push 0
push ecx
mov ecx, dword [esi]
push ecx
mov ecx, dword [esp + 0x30]
push ebp
push edi
push ecx
mov ecx, dword [esp + 0x34]
push ecx
push edx
push esi
mov ecx, eax
call fcn.0041e190
mov edi, eax
jmp 0x41f5b2
xor edi, edi
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x494], 4
call fcn.0044c158
lea ecx, [esp + 0x78]
push ecx
push 0
push edi
push 0x41ee00
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [esp + 0x2c]
mov dword [edx + ebp*4], eax
mov eax, dword [esi]
push eax
push 0xe0001
call fcn.00421600
add esp, 8
test eax, eax
setne al
test al, al
jne 0x41f6a9
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call edi
mov ecx, dword [esi]
push ecx
push 0xe0003
call fcn.00421600
add esp, 8
cmp eax, dword [esi + 0xc]
jle 0x41f644
test eax, eax
jl 0x41f644
push 0xa
call edi
mov edx, dword [esi]
push edx
push 0xe0003
call fcn.00421600
add esp, 8
cmp eax, dword [esi + 0xc]
jg 0x41f627
cmp dword [esp + 0x20], eax
je 0x41f667
mov ecx, dword [esp + 0x18]
push eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4a4]
push eax
push 0x416
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x48c], 3
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41f68f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add dword [esp + 0x1c], ebx
inc ebp
cmp ebp, dword [esi + 8]
jl 0x41f514
jmp 0x41f6d1
push 0x80004005
call fcn.00401280
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x48c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f6d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor bl, bl
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
test bl, bl
jne 0x41f6f4
mov ecx, dword [esi]
push ecx
push 0xe0001
call fcn.00421600
add esp, 8
test eax, eax
setne bl
mov edx, dword [esi]
push edx
push 0xe0003
call fcn.00421600
add esp, 8
test eax, eax
jle 0x41f72d
cmp dword [esp + 0x20], eax
je 0x41f6d3
mov ecx, dword [esp + 0x18]
push eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4a4]
push eax
push 0x416
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x41f6d3
mov edx, dword [esp + 0x2c]
push edx
call fcn.00444954
add esp, 4
test bl, bl
jne 0x41f83e
mov eax, dword [esp + 0x24]
push 0
push 0x1001
push eax
lea ecx, [esp + 0x40]
call fcn.004531c5
test eax, eax
je 0x41f83e
mov eax, dword [esp + 0x4c]
xor edi, edi
mov ebp, eax
test eax, eax
jle 0x41f81f
mov bl, 6
lea ecx, [esp + 0x58]
call fcn.00452d37
mov byte [esp + 0x48c], bl
test edi, edi
jl 0x41f85b
cmp edi, dword [esp + 0x4c]
jge 0x41f85b
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + edi*4]
push 0
push 0
push eax
lea ecx, [esp + 0x64]
call fcn.004531c5
lea ecx, [esp + 0x58]
test eax, eax
je 0x41f84c
push 0x400
lea edx, [esp + 0x84]
push edx
call fcn.00452a2b
test eax, eax
jle 0x41f7fc
lea ebx, [ebx]
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x3c]
call fcn.00452a6d
push 0x400
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x60]
call fcn.00452a2b
test eax, eax
jg 0x41f7d0
lea ecx, [esp + 0x58]
call fcn.00452cd1
lea ecx, [esp + 0x58]
mov byte [esp + 0x48c], 3
call fcn.00452e3f
inc edi
cmp edi, ebp
jl 0x41f771
lea ecx, [esp + 0x34]
call fcn.00452b59
lea ecx, [esp + 0x34]
call fcn.00452c22
lea ecx, [esp + 0x34]
mov dword [esp + 0x30], eax
call fcn.00452cd1
mov eax, dword [esp + 0x4c]
xor edi, edi
mov ebp, eax
test eax, eax
jle 0x41f881
jmp 0x41f864
mov byte [esp + 0x48c], 3
call fcn.00452e3f
jmp 0x41f81f
call fcn.0044b73e
mov eax, dword [esp + 0x4c]
test edi, edi
jl 0x41f85b
cmp edi, eax
jge 0x41f85b
mov edx, dword [esp + 0x48]
mov eax, dword [edx + edi*4]
push eax
call fcn.0040bf00
inc edi
add esp, 4
cmp edi, ebp
jl 0x41f860
mov eax, dword [esp + 0x30]
mov edi, 1
cmp eax, dword [esi + 4]
je 0x41f891
xor edi, edi
mov ecx, dword [esp + 0x24]
push 0x80
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test edi, edi
je 0x41f8c1
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x4a0]
mov ecx, dword [esp + 0x18]
push edx
push eax
push 0x415
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [esp + 0x44]
mov byte [esp + 0x48c], 0
call fcn.0044c05f
lea ecx, [esp + 0x34]
mov dword [esp + 0x48c], 0xffffffff
call fcn.00452e3f
mov eax, edi
jmp 0x41f903
mov edx, dword [esp + 0x18]
mov eax, dword [ebx]
push edx
mov edx, dword [esp + 0x4a4]
push edx
push ecx
push ebp
push eax
mov ecx, esi
call fcn.0041ef80
mov ecx, dword [esp + 0x484]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x46c]
xor ecx, esp
call fcn.0046b9a8
add esp, 0x47c
ret 0x14