Function at 0x461530
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x5c
mov edx, dword [esp + 0x64]
push ebx
push ebp
push esi
cmp edx, 0x106
push edi
mov dword [esp + 0x10], 1
ja 0x461802
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
cmp edx, 0x105
jae 0x4617eb
cmp edx, 0x20
ja 0x461762
je 0x4616e6
add edx, 0xfffffffe
cmp edx, 0x12
ja case.0x461831.275
xor eax, eax
mov al, byte [edx + 0x461c14]
jmp dword [eax*4 + 0x461bfc]
mov esi, dword [esp + 0x70]
mov ecx, esi
call fcn.004686f0
test eax, eax
je 0x4615b0
push 0
mov ecx, eax
call fcn.004684e0
mov ecx, esi
call fcn.004686f0
test eax, eax
jne 0x46159c
cmp dword [0x51da38], esi
jne 0x4615c2
mov dword [0x51da38], 0
push esi
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_GetTopWindow]
mov esi, eax
test esi, esi
je 0x461beb
push esi
call dword [sym.imp.USER32.dll_BringWindowToTop]
mov edi, dword [sym.imp.USER32.dll_GetWindow]
mov ecx, esi
call fcn.004686f0
test eax, eax
je 0x4615f9
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x461612
push 2
push esi
call edi
mov esi, eax
test esi, esi
jne 0x4615e7
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
mov edx, dword [eax]
push 0
mov ecx, eax
call dword [edx + 0x10]
pop edi
pop esi
mov eax, dword [esp + 8]
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
mov esi, dword [esp + 0x70]
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x80000
je 0x461beb
mov eax, dword [esp + 0x78]
push eax
push esi
call dword [sym.imp.USER32.dll_EndDialog]
pop edi
pop esi
mov eax, dword [esp + 8]
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword [0x51da38], ecx
pop ebx
add esp, 0x5c
ret 0x10
mov eax, dword [0x51da1c]
test eax, eax
je 0x461beb
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret 0x10
mov edi, dword [esp + 0x70]
lea edx, [esp + 0x2c]
push edx
push edi
call dword [sym.imp.USER32.dll_BeginPaint]
mov esi, dword [0x520ec8]
mov ebx, eax
test esi, esi
je 0x4616c4
mov eax, dword [esi]
push ebx
push edi
mov ecx, esi
call dword [eax + 0x28]
mov esi, dword [esi + 8]
mov eax, dword [0x520ec8]
cmp esi, eax
je 0x4616c4
test esi, esi
jne 0x4616ab
lea ecx, [esp + 0x2c]
push ecx
push edi
call dword [sym.imp.USER32.dll_EndPaint]
pop edi
pop esi
mov dword [esp + 8], 0
pop ebp
mov eax, dword [esp + 4]
pop ebx
add esp, 0x5c
ret 0x10
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x70]
push edi
push edx
mov edx, 0x20
mov ecx, esi
call fcn.004656f0
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea ecx, [esp + 0x14]
push ecx
push esi
call dword [sym.imp.USER32.dll_ScreenToClient]
mov edx, edi
shr edx, 0x10
cmp edx, 0x200
je 0x46172a
cmp di, 1
jge 0x46174c
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0xffff
and ecx, 0xffff
shl eax, 0x10
or eax, ecx
mov ecx, esi
push eax
push 0
call fcn.004656f0
pop edi
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
lea eax, [edx - 0x87]
cmp eax, 0x7d
ja case.0x461831.275
xor ecx, ecx
mov cl, byte [eax + 0x461c38]
jmp dword [ecx*4 + 0x461c28]
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x5c
ret 0x10
mov eax, esi
and eax, 0x20000000
jne 0x4617c0
cmp edi, 0xd
jne 0x4617c0
mov edx, dword [esp + 0x70]
push 0
push 1
push 0x2400
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret 0x10
test eax, eax
jne 0x4617eb
cmp edi, 0x1b
jne 0x4617eb
push eax
mov eax, dword [esp + 0x74]
push 2
push 0x2400
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret 0x10
mov ecx, dword [esp + 0x70]
push esi
push edi
call fcn.004656f0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x10
cmp edx, 0x209
ja 0x461a87
cmp edx, 0x200
jae case.0x461779.136
lea eax, [edx - 0x110]
cmp eax, 0x23
ja case.0x461831.275
xor ecx, ecx
mov cl, byte [eax + 0x461cc8]
jmp dword [ecx*4 + 0x461cb8]
mov ebx, dword [esp + 0x70]
push ebx
call dword [sym.imp.USER32.dll_SetFocus]
push 0xfffffffffffffffc
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
push str.ToolboxDefaultDialogProc
mov edi, eax
call dword [sym.imp.KERNEL32.dll_AddAtomA]
mov ebp, dword [sym.imp.USER32.dll_SetPropA]
mov esi, eax
and esi, 0xffff
push edi
push esi
push ebx
call ebp
test eax, eax
je 0x46187e
push 0x462320
push 0xfffffffffffffffc
push ebx
call dword [sym.imp.USER32.dll_SetWindowLongA]
push 5
push ebx
call dword [sym.imp.USER32.dll_GetWindow]
test eax, eax
jne 0x4618f5
mov edx, dword [0x51f314]
push eax
push edx
push eax
push ebx
push 1
push 1
push eax
push eax
push 0x40000000
push 0x49d534
push str.STATIC
push eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edi, eax
push 0xfffffffffffffffc
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
push eax
push esi
push edi
call ebp
test eax, eax
je 0x4618d3
push 0x462320
push 0xfffffffffffffffc
push edi
call dword [sym.imp.USER32.dll_SetWindowLongA]
push edi
push str.StubWnd
call dword [sym.imp.KERNEL32.dll_AddAtomA]
and eax, 0xffff
push eax
push ebx
call ebp
push 0
push 0
push 6
push ebx
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [0x51da1c]
test eax, eax
je 0x4619b4
mov edi, dword [eax + 0xc]
test edi, edi
je 0x4619b4
cmp dword [edi + 4], 2
jne 0x4619b4
push 0x10
mov ecx, edi
call fcn.00467bf0
push ebx
mov ecx, edi
call fcn.004684e0
push 0
mov ecx, edi
call fcn.00467d00
lea eax, [esp + 0x1c]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov esi, dword [edi + 0x30]
mov edi, dword [edi + 0x34]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x20]
sub esi, edx
sub edi, eax
add esi, ecx
lea ecx, [esp + 0x1c]
push ecx
push ebx
add edi, ebp
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, esi
mov ebp, dword [esp + 0x1c]
cdq
sub eax, edx
push 1
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
sar ecx, 1
sub edx, eax
sub edi, eax
mov eax, dword [esp + 0x2c]
sub ebp, ecx
sub esi, ecx
mov ecx, dword [esp + 0x28]
add eax, edi
add ecx, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
sub eax, edx
sub ecx, ebp
push eax
push ecx
push edx
push ebp
push ebx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], edx
call dword [sym.imp.USER32.dll_MoveWindow]
pop edi
pop esi
mov dword [0x51da10], ebx
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret 0x10
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x461beb
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
cmp eax, esi
je 0x4619fa
push eax
push 0
push edx
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
mov eax, dword [esp + 8]
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
mov edi, dword [sym.imp.WINMM.dll_timeGetTime]
call edi
cmp eax, dword [0x51da30]
jb 0x461beb
call edi
add eax, 0x32
mov dword [0x51da30], eax
call fcn.004652e0
push 0
push 0
push 0x2403
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
mov eax, dword [esp + 8]
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
push eax
push ecx
push edx
mov edx, dword [esp + 0x7c]
push edx
call fcn.00471ec0
pop edi
pop esi
pop ebp
mov dword [esp + 4], eax
pop ebx
add esp, 0x5c
ret 0x10
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
push eax
push ecx
mov ecx, dword [esp + 0x78]
call fcn.004656f0
pop edi
pop esi
mov dword [esp + 8], 0
pop ebp
mov eax, dword [esp + 4]
pop ebx
add esp, 0x5c
ret 0x10
cmp edx, 0x2400
ja 0x461b7a
je 0x461b5c
mov ebp, dword [esp + 0x70]
sub edx, 0x30f
je 0x461ab8
sub edx, 2
jne case.0x461831.275
cmp dword [esp + 0x78], ebp
je 0x461beb
push ebp
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
mov eax, dword [0x51da0c]
test eax, eax
mov dword [esp + 0x70], esi
je 0x461ad8
push 0
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectPalette]
push esi
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x461b46
mov edi, dword [sym.imp.USER32.dll_InvalidateRect]
push 0
push 0
push ebp
call edi
mov ebx, dword [sym.imp.USER32.dll_GetWindow]
push 5
push ebp
call ebx
mov esi, eax
test esi, esi
je 0x461b13
push 0
push 0
push esi
call edi
push 2
push esi
call ebx
mov esi, eax
test esi, esi
jne 0x461b01
mov edx, dword [0x51da28]
push 0
push 0
push edx
call edi
mov eax, dword [0x51da28]
push 5
push eax
call ebx
mov esi, eax
test esi, esi
je 0x461b42
push 0
push 0
push esi
call edi
push 2
push esi
call ebx
mov esi, eax
test esi, esi
jne 0x461b30
mov esi, dword [esp + 0x70]
push esi
push ebp
call dword [sym.imp.USER32.dll_ReleaseDC]
pop edi
pop esi
mov eax, dword [esp + 8]
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
push ecx
push edx
call dword [sym.imp.USER32.dll_EndDialog]
pop edi
pop esi
mov eax, dword [esp + 0x74]
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
cmp edx, 0x2403
je 0x461b98
pop edi
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x10
mov edi, dword [esp + 0x70]
mov ecx, edi
call fcn.004686f0
mov esi, eax
test esi, esi
je 0x461beb
mov eax, dword [0x51da1c]
test eax, eax
je 0x461bb7
mov ecx, dword [eax + 4]
jmp 0x461bbd
mov ecx, dword [0x520578]
call fcn.00464c30
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x461beb
xor edx, edx
xor ecx, ecx
call fcn.00464f30
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x461beb
push esi
call fcn.0046dc50
mov ecx, dword [esi + 0x18]
call fcn.0046dd80
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x10