Function at 0x41af40
Capabilities:
Enumerate processes
Get process image filename

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d3f6b
mov eax, dword fs:[0]
push eax
sub esp, 0xe78
mov eax, dword [0x52ad60]
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 eax, ecx
mov dword [ebp - 0xad4], eax
and dword [ebp - 0x82c], 0xfffffe00
mov dword [ebp - 0xa9c], eax
mov dword [ebp - 0x828], 0
mov dword [ebp - 4], 1
mov esi, dword [0x52f408]
mov edi, 0xc
lea ecx, [esi + 1]
mov eax, ecx
imul eax, esi
cdq
idiv edi
push 0
push 2
mov byte [ebp - 4], 2
cmp edx, 9
cmove esi, ecx
mov dword [0x52f408], esi
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov ebx, eax
mov dword [ebp - 0xa90], ebx
cmp ebx, 0xffffffff
jne 0x41b296
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa84], eax
mov byte [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xa84]
push str.enumProcess_CreateToolhelp32Snapshot__d
push eax
call fcn.00404c40
mov eax, dword [0x52a6d0]
add esp, 0xc
mov ecx, 0x52a6d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa88], eax
mov eax, str.enumProce_s
mov byte [ebp - 4], 4
test eax, 0xffff0000
jne 0x41b053
movzx esi, ax
mov ecx, esi
call fcn.00405570
test eax, eax
je 0x41b065
push esi
push eax
lea ecx, [ebp - 0xa88]
call fcn.00404ab0
jmp 0x41b065
push 0xb
push str.enumProce_s
lea ecx, [ebp - 0xa88]
call fcn.004046f0
mov byte [ebp - 4], 5
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xa90], esi
lea eax, [ebp - 0xa84]
push eax
lea edx, [ebp - 0xa90]
lea ecx, [ebp - 0xa98]
mov byte [ebp - 4], 6
call fcn.00431540
add esp, 4
mov ebx, eax
mov byte [ebp - 4], 7
mov edx, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa8c], eax
mov eax, str.GlobalLog
mov byte [ebp - 4], 8
test eax, 0xffff0000
jne 0x41b0e8
movzx edi, ax
mov ecx, edi
call fcn.00405570
test eax, eax
je 0x41b0fa
push edi
push eax
lea ecx, [ebp - 0xa8c]
call fcn.00404ab0
jmp 0x41b0fa
push 9
push str.GlobalLog
lea ecx, [ebp - 0xa8c]
call fcn.004046f0
push 2
push ebx
lea eax, [ebp - 0xa88]
push eax
lea eax, [ebp - 0xa8c]
push eax
mov ecx, 0x52f7a4
mov byte [ebp - 4], 9
call fcn.004018e0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0xa8c]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x41b13f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0xa98]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b162
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b17f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0xa88]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b1a2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebp - 0xa84]
lea ecx, [ebp - 0xacc]
call fcn.00431370
mov esi, eax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x81c]
mov eax, dword [0x52fe1c]
and ecx, 0xffffff04
or ecx, 0x104
mov dword [ebp - 0x81c], ecx
mov dword [ebp - 0x818], 0
test al, 1
jne 0x41b203
or eax, 1
push 0x4e01b0
mov dword [0x52fe1c], eax
mov dword [0x52fda0], 0x5184f8
call fcn.004b41d9
add esp, 4
cmp dword [esi + 0x14], 0x10
mov edx, dword [esi + 0x10]
jb 0x41b20e
mov esi, dword [esi]
mov ecx, dword [0x52c374]
push edx
mov eax, dword [ecx]
push esi
call dword [eax + 0xc]
mov dword [ebp - 0x824], eax
push ecx
push str.error
lea ecx, [ebp - 0x834]
mov byte [ebp - 4], 0xb
call fcn.00449e90
lea ecx, [ebp - 0x824]
push ecx
mov ecx, eax
call fcn.004494b0
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0xa
call fcn.004493f0
cmp dword [ebp - 0xab8], 0x10
jb 0x41b26a
push dword [ebp - 0xacc]
call fcn.004b3a0c
add esp, 4
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xa84]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41bec9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41bec9
push 0x22c
lea eax, [ebp - 0xa80]
push 0
push eax
call fcn.004b84f0
add esp, 0xc
lea eax, [ebp - 0xa80]
push eax
push ebx
mov dword [ebp - 0xa80], 0x22c
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
je 0x41bada
mov eax, dword [ebp - 0xaf4]
mov dword [ebp - 0xad0], eax
mov eax, dword [ebp - 0xae4]
mov dword [ebp - 0xad8], eax
mov eax, dword [ebp - 0xaac]
mov esi, str.enumProce_s
or ebx, 0xffffffff
mov dword [ebp - 0xa98], eax
jmp 0x41b300
push dword [ebp - 0xa78]
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
mov dword [ebp - 0xaa4], edi
test edi, edi
je 0x41b96b
xor eax, eax
push 0x7fe
push eax
mov word [ebp - 0x814], ax
lea eax, [ebp - 0x812]
push eax
call fcn.004b84f0
add esp, 0xc
lea eax, [ebp - 0x814]
push 0x800
push eax
push edi
call dword [sym.imp.PSAPI.DLL_GetProcessImageFileNameW]
test eax, eax
jne 0x41b548
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa8c], eax
mov byte [ebp - 4], 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xa8c]
push str.GetProcessImageFileName__d
push eax
call fcn.00404c40
mov eax, dword [0x52a6d0]
add esp, 0xc
mov ecx, 0x52a6d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa88], eax
mov byte [ebp - 4], 0xd
test esi, 0xffff0000
jne 0x41b3d0
movzx esi, si
mov ecx, esi
call fcn.00405570
test eax, eax
je 0x41b3e2
push esi
push eax
lea ecx, [ebp - 0xa88]
call fcn.00404ab0
jmp 0x41b3e2
push 0xb
push str.enumProce_s
lea ecx, [ebp - 0xa88]
call fcn.004046f0
mov byte [ebp - 4], 0xe
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xadc], esi
lea eax, [ebp - 0xa8c]
push eax
lea edx, [ebp - 0xadc]
lea ecx, [ebp - 0xa94]
mov byte [ebp - 4], 0xf
call fcn.00431540
add esp, 4
mov dword [ebp - 0xaa0], eax
mov byte [ebp - 4], 0x10
mov edx, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa84], eax
mov eax, str.GlobalLog
mov byte [ebp - 4], 0x11
test eax, 0xffff0000
jne 0x41b531
movzx edi, ax
mov ecx, edi
call fcn.00405570
test eax, eax
je 0x41b46b
push edi
push eax
lea ecx, [ebp - 0xa84]
call fcn.00404ab0
mov edi, dword [ebp - 0xaa4]
push 2
mov byte [ebp - 4], 0x12
push dword [ebp - 0xaa0]
lea eax, [ebp - 0xa88]
push eax
lea eax, [ebp - 0xa84]
push eax
mov ecx, 0x52f7a4
call fcn.004018e0
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0xa84]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b4b8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0xa94]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b4db
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0xe
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b4f8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0xa88]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b51b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xa8c]
jmp 0x41b94d
push 9
push str.GlobalLog
lea ecx, [ebp - 0xa84]
call fcn.004046f0
jmp 0x41b471
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa88], eax
lea eax, [ebp - 0x814]
mov byte [ebp - 4], 0x13
test eax, 0xffff0000
jne 0x41b593
movzx esi, ax
mov ecx, esi
call fcn.00405570
test eax, eax
je 0x41b5c2
push esi
push eax
lea ecx, [ebp - 0xa88]
call fcn.00404ab0
jmp 0x41b5c2
lea ecx, [ebp - 0x814]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41b5a0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x814]
push eax
lea ecx, [ebp - 0xa88]
call fcn.004046f0
mov byte [ebp - 4], 0x14
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xaa4], eax
mov byte [ebp - 4], 0x15
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa8c], eax
mov byte [ebp - 4], 0x16
push dword [ebp - 0xa78]
lea edx, [ebp - 0xa8c]
lea ecx, [ebp - 0xaa4]
call fcn.00433370
and dword [ebp - 0x81c], 0xfffffe00
add esp, 4
mov dword [ebp - 0x818], 0
mov byte [ebp - 4], 0x18
mov esi, dword [ebp - 0xaa4]
mov eax, dword [0x52a6d0]
cmp dword [esi - 0xc], 0
mov edi, 0x513c88
mov ecx, 0x52a6d0
cmovne edi, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa84], eax
mov byte [ebp - 4], 0x19
test edi, edi
je 0x41b697
test edi, 0xffff0000
jne 0x41b681
movzx edi, di
mov ecx, edi
call fcn.00405570
test eax, eax
je 0x41b6a6
push edi
push eax
lea ecx, [ebp - 0xa84]
call fcn.00404ab0
jmp 0x41b6a6
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41b686
sub ecx, edx
sar ecx, 1
jmp 0x41b699
xor ecx, ecx
push ecx
push edi
lea ecx, [ebp - 0xa84]
call fcn.004046f0
lea edx, [ebp - 0xa84]
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x1a
call fcn.00431370
mov edi, eax
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0xad0]
and eax, 0xffffff04
or eax, 0x104
mov dword [ebp - 0xad0], eax
mov dword [ebp - 0xaf4], eax
mov eax, dword [0x52fe1c]
mov dword [ebp - 0xaf0], 0
test al, 1
jne 0x41b70f
or eax, 1
push 0x4e01b0
mov dword [0x52fe1c], eax
mov dword [0x52fda0], 0x5184f8
call fcn.004b41d9
add esp, 4
cmp dword [edi + 0x14], 0x10
mov edx, dword [edi + 0x10]
jb 0x41b71a
mov edi, dword [edi]
mov ecx, dword [0x52c374]
push edx
mov eax, dword [ecx]
push edi
call dword [eax + 0xc]
mov dword [ebp - 0xafc], eax
push ecx
push str.user
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x1c
call fcn.00449e90
lea ecx, [ebp - 0xafc]
push ecx
mov ecx, eax
call fcn.004494b0
lea ecx, [ebp - 0xafc]
mov byte [ebp - 4], 0x1b
call fcn.004493f0
cmp dword [ebp - 0xab8], 0x10
jb 0x41b776
push dword [ebp - 0xacc]
call fcn.004b3a0c
add esp, 4
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0xa84]
add edx, 0xfffffff0
mov dword [ebp - 0xab8], 0xf
mov dword [ebp - 0xabc], 0
mov byte [ebp - 0xacc], 0
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b7b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebp - 0xa88]
lea ecx, [ebp - 0xacc]
call fcn.00431370
mov edi, eax
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0xad8]
and eax, 0xffffff04
or eax, 0x104
mov dword [ebp - 0xad8], eax
mov dword [ebp - 0xae4], eax
mov eax, dword [0x52fe1c]
mov dword [ebp - 0xae0], 0
test al, 1
jne 0x41b819
or eax, 1
push 0x4e01b0
mov dword [0x52fe1c], eax
mov dword [0x52fda0], 0x5184f8
call fcn.004b41d9
add esp, 4
cmp dword [edi + 0x14], 0x10
mov edx, dword [edi + 0x10]
jb 0x41b824
mov edi, dword [edi]
mov ecx, dword [0x52c374]
push edx
mov eax, dword [ecx]
push edi
call dword [eax + 0xc]
mov dword [ebp - 0xaec], eax
push ecx
push str.process
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x1e
call fcn.00449e90
lea ecx, [ebp - 0xaec]
push ecx
mov ecx, eax
call fcn.004494b0
lea ecx, [ebp - 0xaec]
mov byte [ebp - 4], 0x1d
call fcn.004493f0
cmp dword [ebp - 0xab8], 0x10
jb 0x41b880
push dword [ebp - 0xacc]
call fcn.004b3a0c
add esp, 4
mov eax, dword [ebp - 0xa98]
and eax, 0xffffff01
or eax, 1
mov dword [ebp - 0xa98], eax
mov dword [ebp - 0xaac], eax
mov eax, dword [ebp - 0xa78]
mov dword [ebp - 0xaa8], 0
mov dword [ebp - 0xab4], eax
push ecx
push 0x513c98
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x1f
call fcn.00449e90
lea ecx, [ebp - 0xab4]
push ecx
mov ecx, eax
call fcn.004494b0
lea ecx, [ebp - 0xab4]
mov byte [ebp - 4], 0x18
call fcn.004493f0
lea eax, [ebp - 0x824]
push eax
lea ecx, [ebp - 0x834]
call fcn.0044a170
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x16
call fcn.004493f0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0xa8c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b926
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x14
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b943
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xa88]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b966
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, str.enumProce_s
mov edi, dword [ebp - 0xa90]
lea eax, [ebp - 0xa80]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x41b300
mov ecx, dword [0x52f408]
mov eax, ecx
imul eax, ecx
cdq
mov esi, 6
idiv esi
cmp edx, 2
jne 0x41b9b3
xor esi, esi
mov edi, ecx
inc esi
dec edi
cmp esi, 0xe2
jb 0x41b9a3
mov edi, dword [ebp - 0xa90]
mov eax, dword [ebp - 0x82c]
test al, al
je 0x41b9c9
cmp al, 6
je 0x41b9c9
cmp al, 7
jne 0x41bac6
movsx eax, al
cmp eax, 7
ja case.default.0x41b9d1
jmp dword [eax*4 + 0x41c150]
mov eax, dword [ebp - 0x834]
cmp dword [eax + 4], 0
je case.0x41b9d1.0
mov eax, dword [eax]
lea ecx, [ebp - 0xa90]
mov dword [ebp - 0xa90], eax
call fcn.0042c250
mov eax, dword [ebp - 0xa90]
mov eax, dword [eax + 0x14]
inc eax
jmp 0x41ba27
mov eax, dword [ebp - 0x834]
mov eax, dword [eax + 4]
jmp 0x41ba27
push 0x388
push str...CrossRiderGeneralJsonjson_value.cpp
push 0x5150d4
call fcn.004b650c
add esp, 0xc
xor eax, eax
test eax, eax
sete al
test al, al
je 0x41bac6
mov eax, dword [ebp - 0xaac]
and eax, 0xffffff04
or eax, 0x104
mov dword [ebp - 0xaac], eax
mov eax, dword [0x52fe1c]
mov dword [ebp - 0xaa8], 0
test al, 1
jne 0x41ba7c
or eax, 1
push 0x4e01b0
mov dword [0x52fe1c], eax
mov dword [0x52fda0], 0x5184f8
call fcn.004b41d9
add esp, 4
mov ecx, dword [0x52c374]
push 0xffffffffffffffff
mov eax, dword [ecx]
push str.empty
call dword [eax + 0xc]
mov dword [ebp - 0xab4], eax
push ecx
push str.error
lea ecx, [ebp - 0x834]
mov byte [ebp - 4], 0x20
call fcn.00449e90
lea ecx, [ebp - 0xab4]
push ecx
mov ecx, eax
call fcn.004494b0
lea ecx, [ebp - 0xab4]
mov byte [ebp - 4], 2
call fcn.004493f0
test edi, edi
je 0x41bec2
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x41bec2
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa8c], eax
mov byte [ebp - 4], 0x21
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xa8c]
push str.enumProcess_Process32First__d
push eax
call fcn.00404c40
mov eax, dword [0x52a6d0]
add esp, 0xc
mov ecx, 0x52a6d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa88], eax
mov eax, str.enumProce__
mov byte [ebp - 4], 0x22
test eax, 0xffff0000
jne 0x41bb52
movzx esi, ax
mov ecx, esi
call fcn.00405570
test eax, eax
je 0x41bb64
push esi
push eax
lea ecx, [ebp - 0xa88]
call fcn.00404ab0
jmp 0x41bb64
push 0xb
push str.enumProce__
lea ecx, [ebp - 0xa88]
call fcn.004046f0
mov byte [ebp - 4], 0x23
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xa94], esi
lea eax, [ebp - 0xa8c]
push eax
lea edx, [ebp - 0xa94]
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 0x24
call fcn.00431540
add esp, 4
mov ebx, eax
mov byte [ebp - 4], 0x25
mov edx, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa84], eax
mov eax, str.GlobalLog
mov byte [ebp - 4], 0x26
test eax, 0xffff0000
jne 0x41bbe7
movzx edi, ax
mov ecx, edi
call fcn.00405570
test eax, eax
je 0x41bbf9
push edi
push eax
lea ecx, [ebp - 0xa84]
call fcn.00404ab0
jmp 0x41bbf9
push 9
push str.GlobalLog
lea ecx, [ebp - 0xa84]
call fcn.004046f0
push 2
push ebx
lea eax, [ebp - 0xa88]
push eax
lea eax, [ebp - 0xa84]
push eax
mov ecx, 0x52f7a4
mov byte [ebp - 4], 0x27
call fcn.004018e0
mov byte [ebp - 4], 0x25
mov edx, dword [ebp - 0xa84]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x41bc3e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0xaa0]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41bc61
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x23
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41bc7e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0xa88]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41bca1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebp - 0xa8c]
lea ecx, [ebp - 0xacc]
call fcn.00431370
mov esi, eax
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0xaac]
mov eax, dword [0x52fe1c]
and ecx, 0xffffff04
or ecx, 0x104
mov dword [ebp - 0xaac], ecx
mov dword [ebp - 0xaa8], 0
test al, 1
jne 0x41bd02
or eax, 1
push 0x4e01b0
mov dword [0x52fe1c], eax
mov dword [0x52fda0], 0x5184f8
call fcn.004b41d9
add esp, 4
cmp dword [esi + 0x14], 0x10
mov edx, dword [esi + 0x10]
jb 0x41bd0d
mov esi, dword [esi]
mov ecx, dword [0x52c374]
push edx
mov eax, dword [ecx]
push esi
call dword [eax + 0xc]
mov dword [ebp - 0xab4], eax
push ecx
push str.error
lea ecx, [ebp - 0x834]
mov byte [ebp - 4], 0x29
call fcn.00449e90
lea ecx, [ebp - 0xab4]
push ecx
mov ecx, eax
call fcn.004494b0
lea ecx, [ebp - 0xab4]
mov byte [ebp - 4], 0x28
call fcn.004493f0
cmp dword [ebp - 0xab8], 0x10
jb 0x41bd69
push dword [ebp - 0xacc]
call fcn.004b3a0c
add esp, 4
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xa8c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41bec9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41bec9
mov dword [ebp - 4], 1
mov dword [ebp - 0x854], 0x514aec
mov dword [ebp - 0x83c], 0xf
mov dword [ebp - 0x840], 0
mov byte [ebp - 0x850], 0
mov byte [ebp - 0x838], 0
mov byte [ebp - 4], 0x31
mov eax, dword [0x52a6d0]
mov ecx, 0x52a6d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xa84], esi
lea eax, [ebp - 0x834]
push eax
lea eax, [ebp - 0xacc]
push eax
lea ecx, [ebp - 0x854]
mov byte [ebp - 4], 0x32
call fcn.0044c090
mov edx, eax
mov byte [ebp - 4], 0x33
cmp dword [edx + 0x14], 0x10
jb 0x41bf3a
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 0x41bf59
xor ecx, ecx
jmp 0x41bf71
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0xa9c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41bf64
sub ecx, dword [ebp - 0xa9c]
push ecx
push edx
mov ecx, edi
call fcn.004012f0
lea ecx, [ebp - 0xaa0]
call fcn.004312a0
add esp, 0x18
mov byte [ebp - 4], 0x34
mov edx, dword [eax]
lea eax, [esi - 0x10]
lea edi, [edx - 0x10]
mov dword [ebp - 0xa94], eax
cmp edi, eax
je 0x41c05c
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
mov dword [ebp - 0xa9c], ecx
jl 0x41c047
mov ecx, dword [edi]
cmp ecx, dword [eax]
jne 0x41c047
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
mov ecx, eax
jl 0x41bfe0
cmp ecx, dword [edi]
jne 0x41bfe0
mov esi, edi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x41c01d
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x41bff4
call fcn.0040c760
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov ecx, dword [edi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [edi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.004b4771
add esp, 0x10
mov ecx, dword [ebp - 0xa9c]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x41c03c
mov edx, dword [ebp - 0xa94]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0x10
mov dword [ebp - 0xa84], esi
jmp 0x41c05c
push dword [edx - 0xc]
lea ecx, [ebp - 0xa84]
push edx
call fcn.004046f0
mov esi, dword [ebp - 0xa84]
mov byte [ebp - 4], 0x33
mov edx, dword [ebp - 0xaa0]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41c07f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x32
cmp dword [ebp - 0xab8], 0x10
jb 0x41c09a
push dword [ebp - 0xacc]
call fcn.004b3a0c
add esp, 4
mov edi, dword [ebp - 0xad4]
mov eax, 8
mov word [edi], ax
push dword [esi - 0xc]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x41c0bb
call fcn.0040c760
add esi, 0xfffffff0
mov dword [edi + 8], eax
mov byte [ebp - 4], 0x31
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x41c0d9
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x83c], 0x10
mov dword [ebp - 0x854], 0x514aec
jb 0x41c0fa
push dword [ebp - 0x850]
call fcn.004b3a0c
add esp, 4
lea ecx, [ebp - 0x834]
mov dword [ebp - 0x83c], 0xf
mov dword [ebp - 0x840], 0
mov byte [ebp - 0x850], 0
mov dword [ebp - 0x854], 0x5186b0
mov dword [ebp - 4], 0xffffffff
call fcn.004493f0
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.004b3a11
mov esp, ebp
pop ebp
ret