Function at 0x46155a
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x278
mov eax, dword [0x46700c]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, ecx
mov ebx, edx
push edi
lea ecx, reloc.ADVAPI32.dll_TraceMessage
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], ebx
call fcn.004636d2
mov eax, dword [0x467fd0]
cmp eax, 0x467fd0
je 0x4615b1
test byte [eax + 0x44], 1
je 0x4615b1
cmp byte [eax + 0x41], 7
jb 0x4615b1
push 0x425250
push 0x11
push dword [eax + 0x3c]
push dword [eax + 0x38]
call fcn.00459c86
and dword [ebx], 0
mov eax, esi
call fcn.0045d4f7
cmp eax, 4
lea eax, reloc.ADVAPI32.dll_TraceMessage
jne 0x461659
push eax
push 0
mov ecx, esi
call fcn.0045d352
mov esi, eax
test esi, esi
js 0x461660
lea eax, reloc.ADVAPI32.dll_TraceMessage
call fcn.00463eba
cmp eax, 3
jl 0x461652
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
push 0x5c
pop ebx
cmp word [eax], bx
jne 0x461652
cmp word [eax + 2], bx
jne 0x461652
push 2
pop edi
lea eax, reloc.ADVAPI32.dll_TraceMessage
call fcn.00463eba
cmp eax, edi
jl 0x461660
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
cmp bx, word [eax + edi*2]
je 0x461632
lea eax, reloc.ADVAPI32.dll_TraceMessage
inc edi
call fcn.00463eba
cmp edi, eax
jle 0x461614
jmp 0x461660
xor ecx, ecx
mov word [eax + edi*2], cx
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
add eax, 4
push eax
or eax, reloc.ADVAPI32.dll_TraceMessage
lea edi, reloc.ADVAPI32.dll_TraceMessage
call fcn.004637f0
jmp 0x46165e
mov esi, 0x80070057
jmp 0x461660
call fcn.0045d828
mov esi, eax
mov eax, dword [0x467fd0]
cmp eax, 0x467fd0
je 0x46168e
test byte [eax + 0x44], 1
je 0x46168e
cmp byte [eax + 0x41], 7
jb 0x46168e
push dword [eax + 0x3c]
mov ecx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
push dword [eax + 0x38]
call fcn.00460c37
mov eax, dword [0x467fd0]
test esi, esi
js 0x461b5c
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0x42517c
call edi
mov ebx, eax
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], ebx
test ebx, ebx
je 0x461b3f
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x425198
push ebx
call esi
push 0x4251a8
push ebx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
call esi
push 0x4251b8
push ebx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
call esi
push 0x4251c8
push ebx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
call esi
push 0x4251d8
push dword [ebp - 0x238]
mov ebx, eax
mov dword [ebp - 0xc], ebx
call esi
push 0x4251e8
push dword [ebp - 0x238]
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
call esi
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0
mov dword [ebp - 0x14], eax
je 0x461b19
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0
je 0x461b19
test ebx, ebx
je 0x461b19
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0
je 0x461750
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0
je 0x461750
test eax, eax
je 0x461750
xor ebx, ebx
inc ebx
jmp 0x461752
xor ebx, ebx
push 0x4251fc
call edi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
test eax, eax
je 0x461b19
push 0x425214
push eax
call esi
push 0x425220
push dword [ebp - 0x234]
mov edi, eax
call esi
push 0x42522c
push dword [ebp - 0x234]
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
call esi
push 0x42523c
push dword [ebp - 0x234]
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
call esi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
test edi, edi
je 0x461af3
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0
je 0x461af3
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0
je 0x461af3
test eax, eax
je 0x461af3
xor eax, eax
push 0x18e
push eax
mov word [ebp - 0x21c], ax
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x202
call edi
mov esi, eax
test esi, esi
jne 0x461afd
push 8
pop ecx
lea edi, reloc.ADVAPI32.dll_TraceMessage
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], esi
rep stosd dword es:[edi], eax
test ebx, ebx
jne 0x461829
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 2
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push esi
push dword [ebp - 0x230]
call dword [ebp - 0x224]
mov ecx, eax
test ecx, ecx
jne 0x461ab0
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov eax, dword [eax + 4]
cmp eax, 2
jne 0x461952
call dword [ebp - 0x250]
mov edi, eax
cmp edi, reloc.ADVAPI32.dll_TraceMessage
je 0x4618f9
push dword [ebp + 8]
lea eax, [ebp - 0x3c]
push 0x24
push eax
push esi
push 8
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov eax, dword [eax + 0x18]
push dword [eax + 4]
push edi
call dword [ebp - 0xc]
test eax, eax
jne 0x4618ed
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
xor ebx, ebx
inc ebx
mov dword [eax], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov esi, ecx
test ecx, ecx
jle 0x4618ba
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jns 0x4618ed
mov eax, dword [0x467fd0]
cmp eax, 0x467fd0
je 0x4618ed
test byte [eax + 0x44], bl
je 0x4618ed
cmp byte [eax + 0x41], 2
jb 0x4618ed
push esi
push ecx
push dword [ebp + 8]
mov ecx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
push 0x13
push dword [eax + 0x3c]
push dword [eax + 0x38]
call fcn.00460ca8
push edi
call dword [ebp - 0x23c]
jmp 0x461aa2
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
xor ebx, ebx
inc ebx
mov dword [eax], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov esi, ecx
test ecx, ecx
jle 0x46191e
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jns 0x461aa2
mov eax, dword [0x467fd0]
cmp eax, 0x467fd0
je 0x461aa2
test byte [eax + 0x44], bl
je 0x461aa2
cmp byte [eax + 0x41], 2
jb 0x461aa2
push esi
push ecx
push 0x14
jmp 0x461a8a
push 0x17
pop edi
cmp eax, edi
jne 0x461a9d
test ebx, ebx
je 0x461a9d
call dword [ebp - 0x248]
mov ebx, eax
cmp ebx, reloc.ADVAPI32.dll_TraceMessage
je 0x461a51
mov ecx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], esi
push dword [ecx + 0x18]
call dword [ebp - 0x14]
test eax, eax
je 0x46199d
mov edx, esi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], edx
jmp 0x4619a3
mov edx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
push 7
pop ecx
push 0x17
xor eax, eax
lea edi, [ebp - 0x34]
rep stosd dword es:[edi], eax
pop eax
push dword [ebp + 8]
mov word [ebp - 0x34], ax
push 0x4c
lea eax, [ebp - 0x8c]
push eax
push esi
push 8
and edx, 0xfffffff
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
or edx, 0x10000000
mov dword [ebp - 0x1c], edx
push dword [eax + 0x18]
lea eax, [ebp - 0x34]
push eax
push esi
push esi
push esi
push ebx
call dword [ebp - 0x244]
test eax, eax
jne 0x461a4b
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov dword [eax], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov esi, ecx
test ecx, ecx
jle 0x461a17
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jns 0x461a4b
mov eax, dword [0x467fd0]
cmp eax, 0x467fd0
je 0x461a4b
test byte [eax + 0x44], 1
je 0x461a4b
cmp byte [eax + 0x41], 2
jb 0x461a4b
push esi
push ecx
push dword [ebp + 8]
mov ecx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
push 0x15
push dword [eax + 0x3c]
push dword [eax + 0x38]
call fcn.00460ca8
push ebx
jmp 0x4618ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov esi, ecx
test ecx, ecx
jle 0x461a6b
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jns 0x461aa2
mov eax, dword [0x467fd0]
cmp eax, 0x467fd0
je 0x461aa2
test byte [eax + 0x44], 1
je 0x461aa2
cmp byte [eax + 0x41], 2
jb 0x461aa2
push esi
push ecx
push edi
push dword [eax + 0x3c]
mov ecx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
push dword [eax + 0x38]
call fcn.00460d2c
jmp 0x461aa2
mov esi, 0x80004005
push dword [ebp - 0x220]
call dword [ebp - 0x254]
jmp 0x461aeb
mov esi, ecx
jle 0x461ac0
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jns 0x461aeb
mov eax, dword [0x467fd0]
cmp eax, 0x467fd0
je 0x461aeb
test byte [eax + 0x44], 1
je 0x461aeb
cmp byte [eax + 0x41], 2
jb 0x461aeb
push esi
push ecx
push 0x18
push dword [eax + 0x3c]
push dword [eax + 0x38]
call fcn.00460c02
call dword [ebp - 0x24c]
jmp 0x461b0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x461b0b
and esi, 0xffff
or esi, 0x80070000
push dword [ebp - 0x234]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x461b31
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x461b31
and esi, 0xffff
or esi, 0x80070000
push dword [ebp - 0x238]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x461b57
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x461b57
and esi, 0xffff
or esi, 0x80070000
mov eax, dword [0x467fd0]
cmp eax, 0x467fd0
je 0x461b81
test byte [eax + 0x44], 1
je 0x461b81
cmp byte [eax + 0x41], 7
jb 0x461b81
push 0x425250
push 0x19
push dword [eax + 0x3c]
push dword [eax + 0x38]
call fcn.00459c86
lea eax, reloc.ADVAPI32.dll_TraceMessage
call fcn.00463afc
mov ecx, dword [ebp - 8]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.004655f1
leave
ret 4