Function at 0x40d180
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
push esi
push edi
push 5
mov esi, ecx
mov edi, edx
push 0x4d5040
push esi
mov dword [esp + 0x2c], esi
call ebx
add esp, 0xc
test eax, eax
jne 0x40d262
push 3
lea eax, [esi + 0xa]
push 0x4d504c
push eax
call ebx
add esp, 0xc
mov edx, 0x10
test eax, eax
mov ecx, 0xa
sete bl
test eax, eax
push str.Active
cmove ecx, edx
add esi, ecx
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40d1ec
mov al, 1
jmp 0x40d201
push str.Exist
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40d219
mov al, 3
push dword [ebp + 8]
lea ecx, [eax + ebx]
mov edx, edi
call fcn.0040c490
add esp, 4
test eax, eax
jne 0x40d313
mov eax, dword [0x4e7024]
test byte [eax + 0x100], 1
jne 0x40d244
mov ecx, dword [0x4e97f8]
push 1
push 0
push 0xffffffffffffffff
push 0x4d4eac
call fcn.004a5f40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4ebfdc]
push 0x4bfb90
push 0
push 0x4d4eac
call fcn.0043e390
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x4d5064
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40d3a1
mov eax, dword [ebp + 8]
cmp word [eax], 0
je 0x40d29d
push 0x4bfb90
push str.Parameter_3_must_be_blank_in_this_case.
mov ecx, 0x4eb990
call fcn.0043eb10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x40d330
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x40d2b4
mov edx, dword [eax + 0xc]
jmp 0x40d2b6
mov edx, eax
test byte [edx + 0x15], 2
je 0x40d330
test cl, cl
jne 0x40d2c3
mov eax, dword [eax + 0xc]
mov esi, dword [0x4ea1f0]
mov edi, dword [eax]
test esi, esi
je 0x40d2e1
nop
cmp byte [esi], 6
jne 0x40d2da
cmp dword [esi + 0xc], edi
je 0x40d30d
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x40d2d0
call fcn.0040c650
mov esi, eax
test esi, esi
jne 0x40d2f3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov byte [esi], 6
mov dword [esi + 0xc], edi
mov dword [esi + 4], 0x4bfb90
mov dword [esi + 8], 0x4bfb90
mov dword [0x4ea1fc], esi
mov ecx, dword [0x4e97f8]
push 1
push 0
push 0xffffffffffffffff
push 0x4bfc14
call fcn.004a5f40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp word [edi], 0
jne 0x40d33a
xor esi, esi
jmp 0x40d30d
mov esi, dword [0x4ea1f0]
test esi, esi
je 0x40d386
mov ecx, dword [esi + 4]
mov eax, edi
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40d376
test dx, dx
je 0x40d372
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40d376
add eax, 4
add ecx, 4
test dx, dx
jne 0x40d350
xor eax, eax
jmp 0x40d37b
sbb eax, eax
or eax, 1
test eax, eax
je 0x40d30d
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x40d344
push 0x4bfb90
push str.Parameter_2_must_match_an_existing_If_expression.
mov ecx, 0x4eb990
call fcn.0043eb10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
mov edx, str.UseErrorLevel
mov ecx, ebx
mov dword [esp + 0x18], ebx
call fcn.004a1da0
test eax, eax
setne byte [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x28], eax
cmp dword [ebp + 0xc], eax
jne 0x40d43d
mov dl, 1
mov ecx, edi
call fcn.0040c2b0
movzx eax, ax
mov dword [esp + 0x28], eax
test ax, ax
jne 0x40d43d
push 0
push dword [ebp + 0x10]
mov ecx, 0x4eb990
push edi
call fcn.00428760
mov dword [ebp + 0xc], eax
test eax, eax
jne 0x40d43d
movzx ecx, word [edi]
test cx, cx
jne 0x40d40f
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x40d43d
cmp byte [eax + 0x17], cl
jne 0x40d409
mov eax, dword [eax + 0xc]
test byte [eax + 0x15], 2
je 0x40d43d
cmp byte [esp + 0x1c], 0
jne 0x40d227
test cx, cx
mov edx, str.Parameters_of_hotkey_functions_must_be_optional.
mov eax, str.Target_label_does_not_exist.
mov ecx, 0x4eb990
push edi
cmove eax, edx
push eax
call fcn.0043eb10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x13]
mov ecx, esi
push eax
lea edx, [esp + 0x28]
call fcn.0040ebb0
mov edi, eax
add esp, 4
test edi, edi
je 0x40d46e
mov esi, dword [edi + 0x20]
test esi, esi
je 0x40d46e
mov eax, dword [0x4ea1fc]
cmp dword [esi + 4], eax
je 0x40d470
mov esi, dword [esi + 8]
test esi, esi
jne 0x40d462
xor esi, esi
mov eax, dword [esp + 0x28]
xor dl, dl
movzx ecx, ax
mov dword [esp + 0x14], edx
mov byte [esp + 0x12], dl
mov dword [esp + 0x28], 1
sub ecx, 1
je 0x40d643
sub ecx, 1
je 0x40d643
sub ecx, 1
je 0x40d643
test edi, edi
jne 0x40d4fd
test ax, ax
je 0x40d4b3
mov edx, eax
xor ecx, ecx
jmp 0x40d4c2
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x40d647
xor edx, edx
mov ecx, eax
push dword [esp + 0x1c]
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.0040dac0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x40d4e8
movzx eax, byte [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x24]
mov edx, 1
mov dword [esp + 0x14], edx
mov byte [esp + 0x12], dl
jmp 0x40d76a
cmp word [edi + 6], ax
je 0x40d522
mov word [edi + 6], ax
test ax, ax
jne 0x40d512
mov byte [edi + 0x19], 1
jmp 0x40d51c
cmp byte [edi + 0x12], 0
jne 0x40d51c
mov byte [edi + 0x14], 1
mov dl, 1
mov dword [esp + 0x14], edx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x40d5f8
test esi, esi
je 0x40d58f
cmp ecx, dword [esi]
je 0x40d600
cmp byte [esi + 0x1c], 0
je 0x40d576
cmp byte [0x4e98bb], 0
je 0x40d576
mov dword [esp + 0x2c], ecx
mov ecx, esi
call fcn.004915c0
lea ecx, [esp + 0x2c]
mov bl, al
call fcn.004915c0
mov ecx, dword [esp + 0x14]
cmp al, bl
mov ebx, dword [ebp + 8]
movzx ecx, cl
cmovne ecx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, dword [esi]
test ecx, ecx
je 0x40d588
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp + 0xc]
mov dword [esi], eax
jmp 0x40d600
push dword [esp + 0x24]
push ecx
mov ecx, edi
call fcn.0040e2c0
mov esi, eax
test esi, esi
jne 0x40d5dd
cmp byte [esp + 0x1c], al
je 0x40d5c3
mov ecx, dword [0x4e97f8]
push 1
push eax
push 0xffffffffffffffff
push 0x4d5250
call fcn.004a5f40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esp + 0x20]
mov ecx, 0x4eb990
push str.Out_of_memory.
call fcn.0043eb10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [0x4e98a3], 0
mov ecx, 1
mov byte [esp + 0x12], 1
mov dword [esp + 0x14], ecx
je 0x40d600
mov dl, cl
jmp 0x40d604
test esi, esi
je 0x40d76e
mov dl, byte [esp + 0x13]
mov eax, dword [esp + 0x24]
test al, al
mov byte [esi + 0x19], al
sete al
lea eax, [eax*2 + 2]
or byte [edi + 0x13], al
cmp byte [edi + 0x14], 0
jne 0x40d766
test dl, dl
jne 0x40d632
cmp byte [esp + 0x24], dl
je 0x40d766
mov edx, 1
mov dword [esp + 0x14], edx
mov byte [edi + 0x14], dl
jmp 0x40d76a
test edi, edi
jne 0x40d685
cmp byte [esp + 0x1c], 0
je 0x40d66b
mov ecx, dword [0x4e97f8]
push 1
push 0
push 0xffffffffffffffff
push 0x4d51d4
call fcn.004a5f40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esp + 0x20]
mov ecx, 0x4eb990
push 0x4d51d8
call fcn.0043eb10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
jne 0x40d6cd
cmp word [edi + 6], si
jne 0x40d6cd
cmp byte [esp + 0x1c], 0
je 0x40d6b3
mov ecx, dword [0x4e97f8]
push 1
push 0
push 0xffffffffffffffff
push 0x4d5200
call fcn.004a5f40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esp + 0x20]
mov ecx, 0x4eb990
push str.Nonexistent_hotkey_variant__IfWin_.
call fcn.0043eb10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ax, 3
jne 0x40d6ea
xor eax, eax
cmp word [edi + 6], ax
je 0x40d6e0
cmp byte [edi + 0x19], al
jmp 0x40d6e3
cmp byte [esi + 0x1c], al
setne al
inc eax
movzx eax, ax
movzx ecx, word [edi + 6]
cmp ax, 1
jne 0x40d735
test cx, cx
je 0x40d717
cmp byte [edi + 0x19], 0
je 0x40d709
xor al, al
mov dl, al
mov dword [esp + 0x14], edx
jmp 0x40d76a
mov al, 1
mov byte [edi + 0x19], 1
mov dl, al
mov dword [esp + 0x14], edx
jmp 0x40d76a
cmp byte [esi + 0x1c], 0
je 0x40d727
xor al, al
mov dl, al
mov dword [esp + 0x14], edx
jmp 0x40d76a
mov al, 1
mov byte [esi + 0x1c], 1
mov dl, al
mov dword [esp + 0x14], edx
jmp 0x40d76a
test cx, cx
je 0x40d74f
cmp byte [edi + 0x19], 0
je 0x40d76a
mov edx, 1
mov byte [edi + 0x19], 0
mov dword [esp + 0x14], edx
jmp 0x40d76a
cmp byte [esi + 0x1c], 0
je 0x40d76a
mov edx, 1
mov word [esi + 0x1b], 0
mov dword [esp + 0x14], edx
jmp 0x40d76a
mov edx, dword [esp + 0x14]
test esi, esi
jne 0x40d779
cmp word [edi + 6], 0
je 0x40d68f
movzx eax, word [ebx]
test ax, ax
je 0x40d8f5
mov ecx, eax
nop word [eax + eax]
movzx ebx, cx
test ebx, 0xffffff80
jne 0x40d7ae
push 2
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
add esp, 8
test eax, eax
je 0x40d7ae
and ebx, 0xffffffdf
add ebx, 0xffffffbe
cmp ebx, 0x13
ja case.0x40d7c1.67
movzx eax, byte [ebx + 0x40daac]
jmp dword [eax*4 + 0x40da90]
mov eax, dword [esp + 0x18]
add eax, 2
mov dword [esp + 0x2c], eax
movzx ebx, word [eax]
test ebx, 0xffffff80
jne 0x40d7f1
push 2
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
add esp, 8
test eax, eax
je 0x40d7f1
and ebx, 0xffffffdf
cmp bx, 0x4e
jne 0x40d83a
cmp word [edi + 6], 0
mov eax, dword [esp + 0x2c]
je 0x40d81e
cmp byte [edi + 0x19], 0
jne 0x40d8dc
mov edx, 1
mov byte [edi + 0x19], 1
mov dword [esp + 0x14], edx
jmp 0x40d8e0
cmp byte [esi + 0x1c], 0
jne 0x40d8dc
mov edx, 1
mov byte [esi + 0x1c], 1
mov dword [esp + 0x14], edx
jmp 0x40d8e0
push 3
push 0x4d4eb0
push dword [esp + 0x20]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x18]
jne 0x40d8dc
add eax, 4
cmp word [edi + 6], 0
je 0x40d879
cmp byte [edi + 0x19], 0
je 0x40d890
mov edx, 1
mov byte [edi + 0x19], 0
mov dword [esp + 0x14], edx
jmp 0x40d894
cmp byte [esi + 0x1c], 0
je 0x40d890
mov edx, 1
mov word [esi + 0x1b], 0
mov dword [esp + 0x14], edx
jmp 0x40d894
mov edx, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
je 0x40d8e0
xor dl, dl
mov dword [esp + 0x14], edx
jmp 0x40d8e0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
test esi, esi
je 0x40d8e0
cmp word [eax + 2], 0x30
setne al
mov byte [esi + 0x1a], al
mov eax, dword [esp + 0x18]
jmp 0x40d8e0
mov eax, dword [esp + 0x18]
test esi, esi
je 0x40d8dc
add eax, 2
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x18], eax
movzx eax, word [eax]
mov ecx, eax
test ax, ax
jne 0x40d790
test dl, dl
je 0x40d8fe
call fcn.0040c6d0
cmp byte [esp + 0x1c], 0
je 0x40da63
mov ecx, dword [0x4e97f8]
push 1
push 0
push 0xffffffffffffffff
push 0x4bfc14
call fcn.004a5f40
cmp byte [edi + 0x12], 0
jne 0x40da63
cmp byte [edi + 0x18], 0
jne 0x40da63
cmp byte [0x4e98bb], 0
je 0x40da40
cmp word [edi + 6], 0
jne 0x40da63
mov esi, dword [edi + 0x20]
test esi, esi
je 0x40da63
mov ecx, esi
call fcn.004915c0
test al, al
jne 0x40da40
mov esi, dword [esi + 8]
test esi, esi
jne 0x40d956
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
test esi, esi
je 0x40d8dc
add eax, 2
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
mov edx, dword [0x4e7020]
add esp, 4
movzx ecx, al
mov byte [esi + 0x17], al
cmp ecx, edx
jle 0x40d9a8
mov byte [esi + 0x17], dl
jmp case.0x40d7c1.67
mov edx, dword [esp + 0x14]
cmp al, 1
mov eax, dword [esp + 0x18]
jae 0x40d8e0
mov byte [esi + 0x17], 1
jmp 0x40d8e0
push str.UseErrorLevel
push dword [esp + 0x1c]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov edx, dword [esp + 0x1c]
add esp, 8
test eax, eax
mov eax, dword [esp + 0x18]
jne 0x40d8e0
add eax, 0x18
jmp 0x40d8e0
mov eax, dword [esp + 0x18]
test esi, esi
je 0x40d8dc
add eax, 2
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
cmp eax, 0x64
ja case.0x40d7c1.67
test eax, eax
je 0x40da30
cmp byte [edi + 0x14], 0
jne 0x40da30
mov byte [edi + 0x14], 1
mov edx, 1
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], edx
jmp 0x40d8e0
mov edx, dword [esp + 0x14]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x18]
jmp 0x40d8e0
cmp word [edi + 6], 0
je 0x40da6e
cmp byte [edi + 0x19], 0
je 0x40da63
mov ecx, dword [0x4e97f8]
push 1
push 0
push 0xffffffffffffffff
push 0x4d5258
call fcn.004a5f40
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x20]
test eax, eax
je 0x40da63
cmp byte [eax + 0x1c], 0
jne 0x40da4d
mov eax, dword [eax + 8]
test eax, eax
jne 0x40da75
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret