Function at 0x417c80
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c5a7e
mov eax, dword fs:[0]
push eax
sub esp, 0x5c8
mov eax, dword [0x51eee0]
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 dword [ebp - 0x10], esp
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push 0
lea ecx, [ebp - 0x5d4]
mov dword [ebp - 0x5b4], edi
call fcn.00442860
push str.success
lea ecx, [ebp - 0x5c4]
mov dword [ebp - 4], 0
call fcn.00442820
lea eax, [ebp - 0x5c4]
push eax
push 0x4d968c
lea ecx, [ebp - 0x5d4]
mov byte [ebp - 4], 1
call fcn.00442d00
mov ecx, eax
call fcn.00442b10
lea ecx, [ebp - 0x5c4]
mov byte [ebp - 4], 0
call fcn.00442a70
push str.callbackId
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00443e00
test al, al
jne 0x417ddb
push str.readFile_callbackId_not_exist
lea ecx, [ebp - 0x5a8]
call fcn.00401ff0
lea eax, [ebp - 0x5a8]
push eax
lea eax, [ebp - 0x584]
push eax
mov byte [ebp - 4], 3
call fcn.0044ef60
add esp, 8
push eax
lea ecx, [ebp - 0x5c4]
mov byte [ebp - 4], 4
call fcn.00442780
push 0x4d968c
lea ecx, [ebp - 0x5d4]
mov byte [ebp - 4], 5
call fcn.00442d00
lea ecx, [ebp - 0x5c4]
push ecx
mov ecx, eax
call fcn.00442b10
lea ecx, [ebp - 0x5c4]
mov byte [ebp - 4], 4
call fcn.00442a70
cmp dword [ebp - 0x570], 0x10
jb 0x417dac
push dword [ebp - 0x584]
call fcn.004a5bbe
add esp, 4
mov edx, dword [ebp - 0x5a8]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 2
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x417dd2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
jmp 0x417fbd
push 0x10
call fcn.004a5bed
mov edi, eax
add esp, 4
mov dword [ebp - 0x5ac], edi
mov byte [ebp - 4], 6
test edi, edi
je 0x417e00
push 0
mov ecx, edi
call fcn.00442860
jmp 0x417e02
xor edi, edi
push esi
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00442b10
lea eax, [ebp - 0x5b0]
push eax
push 0
push edi
push 0x4182e0
push 0
push 0
mov dword [ebp - 0x5b0], 0
call fcn.004a7e9c
mov esi, dword [0x520340]
mov ebx, eax
mov eax, esi
imul eax, esi
cdq
mov ecx, 0x18
idiv ecx
add esp, 0x18
cmp edx, 2
jne 0x417eaf
test esi, esi
je 0x417eaf
mov ecx, esi
and ecx, 0x80000001
jns 0x417e60
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x417e6d
mov eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
jmp 0x417e74
lea esi, [esi*2 + 1]
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
mov dword [0x520340], esi
sub ecx, 0
je 0x417e9e
sub ecx, 2
je 0x417ea1
dec ecx
je 0x417ea2
jmp 0x417eab
add esi, 2
inc esi
add esi, 2
mov dword [0x520340], esi
test esi, esi
jne 0x417e51
test ebx, ebx
jne 0x417fac
test edi, edi
je 0x417ecb
mov ecx, edi
call fcn.00442a70
push edi
call fcn.004a5bbe
add esp, 4
call fcn.004a76e6
push dword [eax]
lea eax, [ebp - 0x5ac]
push eax
call fcn.0043e100
add esp, 8
push eax
lea eax, [ebp - 0x5a8]
push str.readFile_beginthreadex_
push eax
mov byte [ebp - 4], 7
call fcn.0040b800
add esp, 0xc
mov edx, dword [ebp - 0x5ac]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 9
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x417f20
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x5a8]
push eax
lea eax, [ebp - 0x584]
push eax
call fcn.0044ef60
add esp, 8
push eax
lea ecx, [ebp - 0x5c4]
mov byte [ebp - 4], 0xa
call fcn.00442780
push 0x4d968c
lea ecx, [ebp - 0x5d4]
mov byte [ebp - 4], 0xb
call fcn.00442d00
lea ecx, [ebp - 0x5c4]
push ecx
mov ecx, eax
call fcn.00442b10
lea ecx, [ebp - 0x5c4]
mov byte [ebp - 4], 0xa
call fcn.00442a70
cmp dword [ebp - 0x570], 0x10
jb 0x417f8e
push dword [ebp - 0x584]
call fcn.004a5bbe
add esp, 4
mov edx, dword [ebp - 0x5a8]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jmp 0x417dc8
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or ebx, 0xffffffff
mov dword [ebp - 4], 0
mov eax, dword [0x520340]
mov ecx, eax
imul ecx, eax
imul ecx, eax
and ecx, 0x8000000f
jns 0x417fd7
dec ecx
or ecx, 0xfffffff0
inc ecx
cmp ecx, 6
jne 0x418048
xor esi, esi
mov edi, edi
call fcn.004a6f99
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0x574], xmm0
cmp esi, 0xab
jb 0x417fe0
xor ecx, ecx
mov eax, 0xaa
cmp ecx, eax
jge 0x41803f
lea ebx, [ebx]
movsd xmm0, qword [ebp + eax*8 - 0x56c]
movsd xmm1, qword [ebp + eax*8 - 0x574]
comisd xmm0, xmm1
jbe 0x41803a
movsd qword [ebp + eax*8 - 0x56c], xmm1
movsd qword [ebp + eax*8 - 0x574], xmm0
dec eax
cmp eax, ecx
jg 0x418010
inc ecx
cmp ecx, 0xab
jl 0x418001
lea ecx, [ebp - 0x5a4]
call fcn.004449b0
mov eax, dword [0x51eab0]
mov ecx, 0x51eab0
mov byte [ebp - 4], 0x10
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x5a8], esi
lea eax, [ebp - 0x5d4]
push eax
lea eax, [ebp - 0x584]
push eax
lea ecx, [ebp - 0x5a4]
mov byte [ebp - 4], 0x11
call fcn.004478c0
mov edx, eax
cmp dword [edx + 0x14], 0x10
mov byte [ebp - 4], 0x12
jb 0x418098
mov edx, dword [edx]
sub esp, 0x18
mov edi, esp
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
cmp byte [edx], 0
jne 0x418145
xor ecx, ecx
jmp 0x41815d
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x5ac], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418150
sub ecx, dword [ebp - 0x5ac]
push ecx
push edx
mov ecx, edi
call fcn.00401460
lea eax, [ebp - 0x5b0]
push eax
call fcn.0044ee90
add esp, 0x1c
mov ecx, dword [eax]
lea edi, [esi - 0x10]
lea edx, [ecx - 0x10]
mov byte [ebp - 4], 0x13
cmp edx, edi
je 0x4181dc
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x4181c7
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x4181c7
push edx
call fcn.00404840
add esp, 4
mov dword [ebp - 0x5ac], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4181bc
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x5ac]
lea esi, [eax + 0x10]
mov dword [ebp - 0x5a8], esi
jmp 0x4181dc
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x5a8]
call fcn.00409950
mov esi, dword [ebp - 0x5a8]
mov edx, dword [ebp - 0x5b0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x12
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4181ff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x570], 0x10
mov byte [ebp - 4], 0x11
jb 0x41821a
push dword [ebp - 0x584]
call fcn.004a5bbe
add esp, 4
mov edi, dword [ebp - 0x5b4]
mov eax, 8
mov word [edi], ax
push dword [esi - 0xc]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x41823b
call fcn.0040c2e0
add esi, 0xfffffff0
mov dword [edi + 8], eax
mov byte [ebp - 4], 0x10
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x418259
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x58c], 0x10
mov byte [ebp - 4], 0
mov dword [ebp - 0x5a4], 0x4d9684
jb 0x41827e
push dword [ebp - 0x5a0]
call fcn.004a5bbe
add esp, 4
lea ecx, [ebp - 0x5a4]
mov dword [ebp - 0x58c], 0xf
mov dword [ebp - 0x590], 0
mov byte [ebp - 0x5a0], 0
call fcn.00444ab0
lea ecx, [ebp - 0x5d4]
mov dword [ebp - 4], 0xffffffff
call fcn.00442a70
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.004a63c4
mov esp, ebp
pop ebp
ret