Function at 0x401c20
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0xa54]
push ebx
push esi
push edi
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
mov eax, edx
call fcn.00407890
mov dword [ebp - 0xa54], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x28], 0
xor eax, eax
push fcn.00401bd0
push ebp
push 0x410b00
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
inc dword [eax + 0x60]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x60]
dec eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x60]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
mov edx, 0x42d880
mov eax, dword [ebp - 8]
add eax, 0x5c
mov ecx, 1
call fcn.0040a2d0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
mov dword [edx + eax + 0x64], 0x12c
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
add eax, edx
mov edx, dword [ebp - 4]
call fcn.004078c0
lea eax, [ebp - 0x28]
call fcn.004040f0
push 0
mov eax, str.Loading
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x34], eax
mov eax, str._with_ID:
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0xc]
xor esi, esi
push esi
push ebx
mov ecx, 0xff
lea edx, [ebp - 0x13c]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x3c]
xor dx, dx
lea eax, [ebp - 0x13c]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x3c]
call fcn.00408cc0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x38]
mov ecx, 3
lea eax, [ebp - 0x28]
call fcn.00407c50
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.00403020
mov eax, dword [ebp - 4]
test eax, eax
jne 0x401d66
mov eax, 0x438380
lea ecx, [ebp - 0x28]
xor dx, dx
call fcn.00408210
mov eax, dword [ebp - 0x28]
mov edx, 0x8000
call fcn.00426720
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x5c]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x68
mov dword [ecx + edx + 4], eax
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
cmp dword [edx + eax + 4], 0
je 0x4027f0
mov eax, str.SmartieInit
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x401ded
mov eax, str._SmartieInit_0
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 0x1c], eax
mov eax, str.SmartieFini
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x5c]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x68
mov dword [ecx + edx + 0x60], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
cmp dword [edx + eax + 0x60], 0
jne 0x401e56
mov eax, str._SmartieFini_0
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x5c]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x68
mov dword [ecx + edx + 0x60], eax
mov eax, str.GetMinRefreshInterval
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x401e96
mov eax, str._GetMinRefreshInterval_0
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 0x14], eax
mov eax, str.SmartieInfo
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x5c]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x68
mov dword [ecx + edx + 0x58], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
cmp dword [edx + eax + 0x58], 0
jne 0x401eff
mov eax, str._SmartieInfo_0
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x5c]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x68
mov dword [ecx + edx + 0x58], eax
mov eax, str.SmartieDemo
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x5c]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x68
mov dword [ecx + edx + 0x5c], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
cmp dword [edx + eax + 0x5c], 0
jne 0x401f68
mov eax, str._SmartieDemo_0
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x5c]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x68
mov dword [ecx + edx + 0x5c], eax
cmp dword [ebp - 0x1c], 0
je 0x401fe3
lea eax, [ebp - 0x28]
call fcn.004040f0
push 0
mov eax, str.ID:
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0xc]
xor esi, esi
push esi
push ebx
mov ecx, 0xff
lea edx, [ebp - 0x13c]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x3c]
xor dx, dx
lea eax, [ebp - 0x13c]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x3c]
call fcn.00408cc0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, str._Found_SmartieInit
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x34]
mov ecx, 2
lea eax, [ebp - 0x28]
call fcn.00407c50
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.00403020
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
cmp dword [edx + eax + 0x60], 0
je 0x40206b
lea eax, [ebp - 0x28]
call fcn.004040f0
push 0
mov eax, str.ID:
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0xc]
xor esi, esi
push esi
push ebx
mov ecx, 0xff
lea edx, [ebp - 0x13c]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x3c]
xor dx, dx
lea eax, [ebp - 0x13c]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x3c]
call fcn.00408cc0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, str._Found_SmartieFini
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x34]
mov ecx, 2
lea eax, [ebp - 0x28]
call fcn.00407c50
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.00403020
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
cmp dword [edx + eax + 0x58], 0
je 0x4020f3
lea eax, [ebp - 0x28]
call fcn.004040f0
push 0
mov eax, str.ID:
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0xc]
xor esi, esi
push esi
push ebx
mov ecx, 0xff
lea edx, [ebp - 0x13c]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x3c]
xor dx, dx
lea eax, [ebp - 0x13c]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x3c]
call fcn.00408cc0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, str._Found_SmartieInfo
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x34]
mov ecx, 2
lea eax, [ebp - 0x28]
call fcn.00407c50
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.00403020
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
cmp dword [edx + eax + 0x5c], 0
je 0x40217b
lea eax, [ebp - 0x28]
call fcn.004040f0
push 0
mov eax, str.ID:
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0xc]
xor esi, esi
push esi
push ebx
mov ecx, 0xff
lea edx, [ebp - 0x13c]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x3c]
xor dx, dx
lea eax, [ebp - 0x13c]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x3c]
call fcn.00408cc0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, str._Found_SmartieDemo
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x34]
mov ecx, 2
lea eax, [ebp - 0x28]
call fcn.00407c50
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.00403020
cmp dword [ebp - 0x14], 0
je 0x4021f6
lea eax, [ebp - 0x28]
call fcn.004040f0
push 0
mov eax, str.ID:
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0xc]
xor esi, esi
push esi
push ebx
mov ecx, 0xff
lea edx, [ebp - 0x13c]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x3c]
xor dx, dx
lea eax, [ebp - 0x13c]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x3c]
call fcn.00408cc0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, str._Found_GetMinRefreshInterval
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x34]
mov ecx, 2
lea eax, [ebp - 0x28]
call fcn.00407c50
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.00403020
mov dword [ebp - 0x10], 0
inc dword [ebp - 0x10]
lea eax, [ebp - 0x28]
call fcn.004040f0
push 0
push 0xff
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x13c]
mov edx, 0xffffffff
call fcn.00404f70
lea ecx, [ebp - 0x140]
xor dx, dx
lea eax, [ebp - 0x13c]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x140]
call fcn.00408cc0
mov ecx, dword [ebp - 0x140]
mov edx, str.function
lea eax, [ebp - 0x28]
call fcn.004079c0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x402265
mov eax, 0x438380
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x5c]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x68
mov ebx, dword [ebp - 0x10]
lea edx, [ecx + edx + 4]
mov dword [edx + ebx*4], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
mov ecx, dword [ebp - 0x10]
lea eax, [edx + eax + 4]
cmp dword [eax + ecx*4], 0
jne 0x402355
lea eax, [ebp - 0x140]
call fcn.004040f0
push 0
mov eax, str._function
mov dword [ebp - 0x34], eax
push 0xff
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x13c]
mov edx, 0xffffffff
call fcn.00404f70
lea ecx, [ebp - 0x3c]
xor dx, dx
lea eax, [ebp - 0x13c]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x3c]
call fcn.00408cc0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, 0x42d458
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x34]
mov ecx, 2
lea eax, [ebp - 0x140]
call fcn.00407c50
mov eax, dword [ebp - 0x140]
test eax, eax
jne 0x402329
mov eax, 0x438380
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
push dword [edx + eax + 4]
call sub.kernel32.dll_GetProcAddress
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x5c]
mov edx, dword [ebp - 0xc]
imul edx, edx, 0x68
mov ebx, dword [ebp - 0x10]
lea edx, [ecx + edx + 4]
mov dword [edx + ebx*4], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
mov edx, dword [ebp - 0x10]
lea eax, [ecx + eax + 4]
cmp dword [eax + edx*4], 0
jne 0x4021fd
lea eax, [ebp - 0x144]
call fcn.004040f0
push 0
mov eax, str.ID:
mov dword [ebp - 0x50], eax
mov ebx, dword [ebp - 0xc]
xor esi, esi
push esi
push ebx
mov ecx, 0xff
lea edx, [ebp - 0x244]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x3c]
xor dx, dx
lea eax, [ebp - 0x244]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x3c]
call fcn.00408cc0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], eax
mov eax, str._Found
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x10]
lea ebx, [eax - 1]
push 0xff
lea ecx, [ebp - 0x244]
mov edx, 0xffffffff
mov eax, ebx
call fcn.00404f70
lea ecx, [ebp - 0x248]
xor dx, dx
lea eax, [ebp - 0x244]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x248]
call fcn.00408cc0
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x44], eax
mov eax, str._function_s_
mov dword [ebp - 0x40], eax
lea edx, [ebp - 0x50]
mov ecx, 4
lea eax, [ebp - 0x144]
call fcn.00407c50
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 8]
call fcn.00403020
cmp dword [ebp - 0x1c], 0
je 0x40255c
xor eax, eax
push 0x42d028
push ebp
push 0x410ee0
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x144]
call fcn.004040f0
push 0
mov eax, str.ID:
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0xc]
xor esi, esi
push esi
push ebx
mov ecx, 0xff
lea edx, [ebp - 0x244]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x248]
xor dx, dx
lea eax, [ebp - 0x244]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x248]
call fcn.00408cc0
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x30], eax
mov eax, str._Calling_SmartieInit
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x34]
mov ecx, 2
lea eax, [ebp - 0x144]
call fcn.00407c50
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 8]
call fcn.00403020
call dword [ebp - 0x1c]
xor edx, edx
pop eax
add esp, 0xc
mov dword fs:[edx], eax
jmp 0x40255c
cmp dword [ebp - 0x14], 0
je 0x4026a8
xor eax, eax
push 0x42d034
push ebp
push 0x410ee0
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x144]
call fcn.004040f0
push 0
mov eax, str.ID:
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], edx
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
mov ecx, 0xff
lea edx, [ebp - 0x244]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x248]
xor dx, dx
lea eax, [ebp - 0x244]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x248]
call fcn.00408cc0
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x30], eax
mov eax, str._Calling_GetMinRefreshInterval
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x34]
mov ecx, 2
lea eax, [ebp - 0x144]
call fcn.00407c50
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 8]
call fcn.00403020
call dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
jmp 0x40268f
cmp dword [ebp - 0x18], 0
jle 0x4026a8
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
mov edx, dword [ebp - 0x18]
mov dword [ecx + eax + 0x64], edx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x68
mov eax, dword [edx + eax + 0x64]
xor edx, edx
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], edx
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
mov ecx, 0xff
lea edx, [ebp - 0x244]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x248]
xor dx, dx
lea eax, [ebp - 0x244]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x248]
call fcn.00408cc0
mov ecx, dword [ebp - 0x248]
mov edx, 0x7ff
lea eax, [ebp - 0xa50]
call fcn.00408360
mov eax, dword [0x437020]
lea edi, [eax + 0x1108]
lea esi, [ebp - 0xa50]
mov ecx, 0x800
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x437020]
mov edx, dword [ebp - 0xc]
mov dword [eax], edx
push dword [0x437050]
call sub.kernel32.dll_SetEvent
lea eax, [ebp - 0x144]
call fcn.004040f0
push 0
mov eax, str.ID:
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
mov ecx, 0xff
lea edx, [ebp - 0x244]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x248]
xor dx, dx
lea eax, [ebp - 0x244]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x248]
call fcn.00408cc0
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x250], eax
mov eax, str._Load_Success
mov dword [ebp - 0x24c], eax
lea edx, [ebp - 0x254]
mov ecx, 2
lea eax, [ebp - 0x144]
call fcn.00407c50
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 8]
call fcn.00403020
jmp 0x4028e8
mov eax, dword [ebp - 8]
dec dword [eax + 0x60]
lea eax, [ebp - 0x144]
call fcn.004040f0
push 0
mov eax, str.Legacy_Plugin
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x248]
call fcn.0041f730
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x158], eax
mov eax, str._had_an_exception_during_load:
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], edx
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
mov ecx, 0xff
lea edx, [ebp - 0x13c]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x3c]
xor dx, dx
lea eax, [ebp - 0x13c]
call fcn.00408140
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x3c]
call fcn.00408cc0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x150], eax
mov eax, 0x42d5b4
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0xa54]
call fcn.004273b0
mov eax, dword [ebp - 0xa54]
mov dword [ebp - 0x148], eax
lea edx, [ebp - 0x15c]
mov ecx, 5
lea eax, [ebp - 0x144]
call fcn.00407c50
mov ecx, dword [ebp - 0x144]
mov edx, 1
mov eax, 0x43079c
call fcn.00425960
mov edx, 0x4027f6
mov ecx, ebp
call fcn.004109c0
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
mov eax, ebp
call fcn.00401bd0
pop edi
pop esi
pop ebx
leave
ret