Function at 0x40e6d0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1010c
call fcn.00422250
mov dword [ebp - 0xc], 0
lea eax, [ebp - 8]
push eax
call fcn.004102b0
add esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40f0ac
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x10018]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x432950
lea eax, [ebp - 0x10018]
push eax
call fcn.0041df60
add esp, 8
xor ecx, ecx
mov word [eax], cx
push 0x44
lea edx, [ebp - 0x10078]
push edx
call fcn.0041dff0
add esp, 8
mov dword [ebp - 0x10078], 0x44
mov dword [ebp - 0x1004c], 0x81
xor eax, eax
mov word [ebp - 0x10048], ax
mov ecx, dword [ebp + 0xc]
neg ecx
sbb ecx, ecx
and ecx, 4
mov dword [ebp - 0x1002c], ecx
lea edx, [ebp - 0x10028]
push edx
lea eax, [ebp - 0x10078]
push eax
lea ecx, [ebp - 0x10018]
push ecx
push 0
mov edx, dword [ebp - 0x1002c]
push edx
push 0
push 0
push 0
push 0
mov eax, dword [ebp + 8]
push eax
call dword [0x489400]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 1
jne 0x40f0a2
push 0x432954
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x10080], eax
push 0x432968
mov ecx, dword [ebp - 0x10080]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x10090], eax
push 0x432978
mov edx, dword [ebp - 0x10080]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x10098], eax
push 0x43298c
mov eax, dword [ebp - 0x10080]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x10084], eax
push 0x4329a0
mov ecx, dword [ebp - 0x10080]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x10088], eax
push 0x4329b8
mov edx, dword [ebp - 0x10080]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x1008c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x1007c], eax
cmp dword [ebp - 0x10090], 0
je 0x40f05f
cmp dword [ebp - 0x10098], 0
je 0x40f05f
cmp dword [ebp - 0x10084], 0
je 0x40f05f
cmp dword [ebp - 0x10088], 0
je 0x40f05f
cmp dword [ebp - 0x1008c], 0
je 0x40f05f
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x100b0], eax
mov ecx, dword [ebp - 0x100b0]
mov edx, dword [ebp - 0x100b0]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x100a8], edx
mov eax, dword [ebp - 0x100a8]
add eax, 0x18
mov dword [ebp - 0x100ac], eax
mov dword [ebp - 0x100a4], 0
mov dword [ebp - 0x100a0], 0x91c
mov dword [ebp - 0x1009c], 0
push 0
push 0x8000000
push 4
lea ecx, [ebp - 0x100a0]
push ecx
push 0
push 6
lea edx, [ebp - 0x100a4]
push edx
call dword [ebp - 0x10090]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40f05f
mov dword [ebp - 0x100b4], 0
mov dword [ebp - 0x100b8], 0x91c
push 4
push 0
push 2
lea eax, [ebp - 0x100b8]
push eax
push 0
push 0
push 0
lea ecx, [ebp - 0x100b4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
mov edx, dword [ebp - 0x100a4]
push edx
call dword [ebp - 0x10098]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40f052
mov dword [ebp - 0x100bc], 0
push 4
push 0
push 2
lea eax, [ebp - 0x100b8]
push eax
push 0
push 0
push 0
lea ecx, [ebp - 0x100bc]
push ecx
mov edx, dword [ebp - 0x10028]
push edx
mov eax, dword [ebp - 0x100a4]
push eax
call dword [ebp - 0x10098]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40f03e
mov dword [ebp - 0x100cc], 0
mov ecx, 0x40fcf0
sub ecx, 0x40f0c0
mov dword [ebp - 0x100c0], ecx
mov edx, dword [ebp - 0x100c0]
xor eax, eax
mov dword [ebp - 0x100c8], edx
mov dword [ebp - 0x100c4], eax
push 0
push 0x8000000
push 0x40
lea ecx, [ebp - 0x100c8]
push ecx
push 0
push 0xe
lea edx, [ebp - 0x100cc]
push edx
call dword [ebp - 0x10090]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40f03e
mov dword [ebp - 0x100d0], 0
mov eax, dword [ebp - 0x100c0]
mov dword [ebp - 0x100d4], eax
push 0x40
push 0
push 2
lea ecx, [ebp - 0x100d4]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x100d0]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
mov eax, dword [ebp - 0x100cc]
push eax
call dword [ebp - 0x10098]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40f031
mov dword [ebp - 0x100d8], 0
push 0x40
push 0
push 2
lea ecx, [ebp - 0x100d4]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x100d8]
push edx
mov eax, dword [ebp - 0x10028]
push eax
mov ecx, dword [ebp - 0x100cc]
push ecx
call dword [ebp - 0x10098]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40f01d
mov edx, dword [ebp - 0x100c0]
push edx
push 0x40f0c0
mov eax, dword [ebp - 0x100d0]
push eax
call fcn.00422a00
add esp, 0xc
mov ecx, dword [ebp - 0x100b4]
mov dword [ebp - 0x100dc], ecx
push 0x4329c0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x100e0], eax
push 0x4329dc
mov edx, dword [ebp - 0x100e0]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x100dc]
mov dword [ecx], eax
push 0x4329ec
mov edx, dword [ebp - 0x100e0]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x100dc]
mov dword [ecx + 4], eax
push 0x4329fc
mov edx, dword [ebp - 0x100dc]
add edx, 8
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x432a18
mov eax, dword [ebp - 0x100dc]
add eax, 0xd2
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x432a30
mov ecx, dword [ebp - 0x100dc]
add ecx, 0x19c
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x432a44
mov edx, dword [ebp - 0x100dc]
add edx, 0x266
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432a4c
mov eax, dword [ebp - 0x100dc]
add eax, 0x2ca
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432a5c
mov ecx, dword [ebp - 0x100dc]
add ecx, 0x32e
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432a68
mov edx, dword [ebp - 0x100dc]
add edx, 0x3f6
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432a78
mov eax, dword [ebp - 0x100dc]
add eax, 0x45a
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432a84
mov ecx, dword [ebp - 0x100dc]
add ecx, 0x4be
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432a90
mov edx, dword [ebp - 0x100dc]
add edx, 0x522
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432a9c
mov eax, dword [ebp - 0x100dc]
add eax, 0x586
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432aa8
mov ecx, dword [ebp - 0x100dc]
add ecx, 0x5ea
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432ab8
mov edx, dword [ebp - 0x100dc]
add edx, 0x6b2
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432ad0
mov eax, dword [ebp - 0x100dc]
add eax, 0x64e
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x432ae4
mov ecx, dword [ebp - 0x100dc]
add ecx, 0x716
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, dword [ebp - 0x100dc]
mov dword [edx + 0x77c], 1
mov eax, dword [ebp - 0x100dc]
mov ecx, dword [0x47e3bc]
mov dword [eax + 0x780], ecx
mov dword [ebp - 0x100ec], 0
mov eax, dword [ebp - 8]
cdq
mov dword [ebp - 0x100e8], eax
mov dword [ebp - 0x100e4], edx
push 0
push 0x8000000
push 4
lea edx, [ebp - 0x100e8]
push edx
push 0
push 6
lea eax, [ebp - 0x100ec]
push eax
call dword [ebp - 0x10090]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40f01d
mov dword [ebp - 0x100f4], 0
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x100f0], ecx
push 4
push 0
push 2
lea edx, [ebp - 0x100f0]
push edx
push 0
push 0
push 0
lea eax, [ebp - 0x100f4]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
mov ecx, dword [ebp - 0x100ec]
push ecx
call dword [ebp - 0x10098]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40f010
mov dword [ebp - 0x100f8], 0
push 4
push 0
push 2
lea edx, [ebp - 0x100f0]
push edx
push 0
push 0
push 0
lea eax, [ebp - 0x100f8]
push eax
mov ecx, dword [ebp - 0x10028]
push ecx
mov edx, dword [ebp - 0x100ec]
push edx
call dword [ebp - 0x10098]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40effc
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x100f4]
push edx
call fcn.00422a00
add esp, 0xc
mov eax, dword [ebp - 8]
shr eax, 2
mov dword [ebp - 0x100fc], eax
mov dword [ebp - 0x10104], 0
jmp 0x40edb6
mov ecx, dword [ebp - 0x10104]
add ecx, 1
mov dword [ebp - 0x10104], ecx
mov edx, dword [ebp - 0x10104]
cmp edx, dword [ebp - 0x100fc]
jge 0x40edea
mov eax, dword [ebp - 0x10104]
mov ecx, dword [ebp - 0x100f4]
mov edx, dword [ecx + eax*4]
xor edx, dword [0x47e3bc]
mov eax, dword [ebp - 0x10104]
mov ecx, dword [ebp - 0x100f4]
mov dword [ecx + eax*4], edx
jmp 0x40eda7
mov edx, dword [ebp - 0x100dc]
mov eax, dword [ebp - 0x100f8]
mov dword [edx + 0x914], eax
mov ecx, dword [ebp - 0x100dc]
mov edx, dword [ebp - 8]
mov dword [ecx + 0x918], edx
mov dword [ebp - 0x10100], 0
push str.99B1893C_0E2F_4A5D_81EF_F1EBDCCC8823
push 0
push 1
push 0
call dword [0x4893fc]
mov dword [ebp - 0x10100], eax
cmp dword [ebp - 0x10100], 0
je 0x40effc
mov dword [ebp - 0x10108], 0
push 0
lea eax, [ebp - 0x10108]
push eax
mov ecx, dword [ebp - 0x100bc]
push ecx
mov edx, dword [ebp - 0x100d8]
push edx
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x10028]
push eax
call dword [ebp - 0x10084]
mov dword [ebp - 0x10094], eax
cmp dword [ebp - 0x10094], 0
jl 0x40efe2
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x10028]
mov dword [ecx], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10020]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x10024]
mov dword [edx + 4], eax
push 0x1388
mov ecx, dword [ebp - 0x10100]
push ecx
call dword [0x48940c]
mov dword [ebp - 0x1010c], eax
mov edx, dword [ebp - 0x10100]
push edx
call dword [0x4894b8]
cmp dword [ebp - 0x1010c], 0x102
je 0x40ef9e
mov eax, dword [ebp - 0x100bc]
push eax
mov ecx, dword [ebp - 0x10028]
push ecx
call dword [ebp - 0x10088]
mov edx, dword [ebp - 0x100d8]
push edx
mov eax, dword [ebp - 0x10028]
push eax
call dword [ebp - 0x10088]
mov ecx, dword [ebp - 0x100f8]
push ecx
mov edx, dword [ebp - 0x10028]
push edx
call dword [ebp - 0x10088]
mov eax, dword [ebp - 0x100b4]
push eax
mov ecx, dword [ebp - 0x1007c]
push ecx
call dword [ebp - 0x10088]
mov edx, dword [ebp - 0x100d0]
push edx
mov eax, dword [ebp - 0x1007c]
push eax
call dword [ebp - 0x10088]
mov ecx, dword [ebp - 0x100f4]
push ecx
mov edx, dword [ebp - 0x1007c]
push edx
call dword [ebp - 0x10088]
mov eax, dword [ebp - 0x100a4]
push eax
call dword [ebp - 0x1008c]
mov ecx, dword [ebp - 0x100cc]
push ecx
call dword [ebp - 0x1008c]
mov edx, dword [ebp - 0x100ec]
push edx
call dword [ebp - 0x1008c]
mov eax, dword [ebp - 0x10100]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x14]
push ecx
call dword [0x4893f8]
mov eax, 1
jmp 0x40f0ae
push 0
mov edx, dword [ebp - 0x10028]
push edx
call dword [0x489418]
mov eax, dword [ebp - 0x10028]
push eax
call dword [0x4893e4]
mov ecx, dword [ebp - 0x10024]
push ecx
call dword [0x4893e4]
mov dword [ebp - 0x10028], 0
mov dword [ebp - 0x10024], 0
mov dword [ebp - 0xc], 1
mov edx, dword [ebp - 0x10100]
push edx
call dword [0x4894b8]
mov eax, dword [ebp - 0x10100]
push eax
call dword [0x4893e4]
mov ecx, dword [ebp - 0x100f4]
push ecx
mov edx, dword [ebp - 0x1007c]
push edx
call dword [ebp - 0x10088]
mov eax, dword [ebp - 0x100ec]
push eax
call dword [ebp - 0x1008c]
mov ecx, dword [ebp - 0x100d0]
push ecx
mov edx, dword [ebp - 0x1007c]
push edx
call dword [ebp - 0x10088]
mov eax, dword [ebp - 0x100cc]
push eax
call dword [ebp - 0x1008c]
mov ecx, dword [ebp - 0x100b4]
push ecx
mov edx, dword [ebp - 0x1007c]
push edx
call dword [ebp - 0x10088]
mov eax, dword [ebp - 0x100a4]
push eax
call dword [ebp - 0x1008c]
cmp dword [ebp - 0xc], 0
jne 0x40f0a2
push 0
mov ecx, dword [ebp - 0x10028]
push ecx
call dword [0x489418]
mov edx, dword [ebp - 0x10028]
push edx
call dword [0x4893e4]
mov eax, dword [ebp - 0x10024]
push eax
call dword [0x4893e4]
mov dword [ebp - 0x10028], 0
mov dword [ebp - 0x10024], 0
mov ecx, dword [ebp - 0x14]
push ecx
call dword [0x4893f8]
xor eax, eax
mov esp, ebp
pop ebp
ret