Function at 0x401920
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
test eax, eax
je 0x401bc0
push dword [ecx + eax*4 - 8]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x41c3b0], eax
test eax, eax
je 0x401bc0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.ToolSetCallbacks
push eax
mov dword [0x41c3e8], 0
call esi
mov dword [0x41c3bc], eax
test eax, eax
je 0x401ba5
push 0x401140
push 0
push 0
push 0
push 0
push 0
call eax
push str.ToolBeginCommunication
push dword [0x41c3b0]
call esi
push str.ToolEndCommunication
push dword [0x41c3b0]
mov dword [0x41c3c0], eax
call esi
push str.ToolListen
push dword [0x41c3b0]
mov dword [0x41c3c4], eax
call esi
push str.ReleaseString
push dword [0x41c3b0]
mov dword [0x41c3c8], eax
call esi
push str.Utf16ToUtf8
push dword [0x41c3b0]
mov dword [0x41c3b4], eax
call esi
push str.JsonReadObject
push dword [0x41c3b0]
mov dword [0x41c3b8], eax
call esi
push str.JsonReadInteger
push dword [0x41c3b0]
mov dword [0x41c3cc], eax
call esi
push str.JsonReadString
push dword [0x41c3b0]
mov dword [0x41c3d0], eax
call esi
push str.JsonWriteStartObject
push dword [0x41c3b0]
mov dword [0x41c3d4], eax
call esi
push str.JsonWriteEndObject
push dword [0x41c3b0]
mov dword [0x41c3d8], eax
call esi
push str.JsonWriteInteger
push dword [0x41c3b0]
mov dword [0x41c3dc], eax
call esi
push str.JsonWriteString
push dword [0x41c3b0]
mov dword [0x41c3e0], eax
call esi
cmp dword [0x41c3b4], 0
mov dword [0x41c3e4], eax
je 0x401ba5
cmp dword [0x41c3b8], 0
je 0x401ba5
mov ecx, dword [0x41c3c0]
test ecx, ecx
je 0x401ba5
cmp dword [0x41c3c4], 0
je 0x401ba5
cmp dword [0x41c3c8], 0
je 0x401ba5
cmp dword [0x41c3cc], 0
je 0x401ba5
cmp dword [0x41c3d0], 0
je 0x401ba5
cmp dword [0x41c3d4], 0
je 0x401ba5
cmp dword [0x41c3d8], 0
je 0x401ba5
cmp dword [0x41c3dc], 0
je 0x401ba5
cmp dword [0x41c3e0], 0
je 0x401ba5
test eax, eax
je 0x401ba5
push str.s7prodave
call ecx
test al, al
je 0x401ba5
push edi
call dword [0x41c3c8]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
nop
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x20]
push eax
call edi
test eax, eax
je 0x401b38
cmp dword [ebp - 0x1c], 0x12
je 0x401b3e
push 1
call esi
jmp 0x401b20
call dword [0x41c3c4]
mov eax, dword [0x41b8cc]
pop edi
test eax, eax
je 0x401b55
push eax
call dword [0x41c3b4]
mov eax, dword [0x41b8d4]
test eax, eax
je 0x401b65
push eax
call dword [0x41c3b4]
mov eax, dword [0x41b8dc]
test eax, eax
je 0x401b75
push eax
call dword [0x41c3b4]
mov eax, dword [0x41b8e4]
test eax, eax
je 0x401b85
push eax
call dword [0x41c3b4]
mov eax, dword [0x41b8ec]
test eax, eax
je 0x401b95
push eax
call dword [0x41c3b4]
mov eax, dword [0x41b8f8]
test eax, eax
je 0x401ba5
push eax
call dword [0x41c3b4]
mov eax, dword [0x41c3e8]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
test eax, eax
je 0x401bb7
push eax
call esi
push dword [0x41c3b0]
call esi
pop esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bd4
mov esp, ebp
pop ebp
ret