Function at 0x485910
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x790
push ebx
xor eax, eax
push ebp
mov ebp, dword [esp + 0x79c]
push esi
mov byte [esp + 0xec], al
mov byte [esp + 0x24], al
mov byte [esp + 0x1b4], al
mov byte [esp + 0x150], al
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x7a8]
push edi
mov edi, 1
cmp eax, 2
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], 0x76c
jne 0x485a41
cmp byte [ebp + 8], 0x20
jne 0x485da7
lea eax, [esp + 0x154]
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x20]
push ecx
lea eax, [esp + 0x18]
push edx
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x24]
push ecx
push edx
push 0x52abc0
push ebp
call fcn.004bec5c
mov eax, dword [esp + 0x30]
add esp, 0x20
cmp eax, 0x64
jge 0x4859c0
cmp eax, 0x32
jg 0x4859b7
add eax, 0x7d0
jmp 0x4859bc
add eax, 0x76c
mov dword [esp + 0x10], eax
push 2
push ebp
call fcn.004858c0
mov esi, eax
push 5
push str.Middle_button
push esi
call fcn.004bfb20
mov ebx, dword [esp + 0x7bc]
add esp, 0x14
test eax, eax
jne 0x4859f6
mov eax, dword [ebx + 0x208]
or ah, 0x40
mov dword [ebx + 0x208], eax
jmp 0x485a0b
lea eax, [ebx + 0x20c]
push eax
push 0x52abb4
push esi
call fcn.004bec5c
add esp, 0xc
push 1
push esi
call fcn.004858c0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x1b8]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x48628f
cmp eax, 3
jne 0x485be8
mov al, byte [0x55f8b4]
mov ebp, dword [esp + 0x7a4]
test al, al
mov ebx, ebp
je 0x485ab1
mov al, byte [ebp]
cmp al, 0x20
je 0x485a67
cmp al, 9
jne 0x485ab1
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x55f8b4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x55f8b4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [ebp]
xor ecx, ecx
test al, al
je 0x485ace
cmp al, 0x3b
je 0x485ace
mov byte [esp + ecx + 0x1b8], al
mov al, byte [ebp + 1]
inc ecx
inc ebp
test al, al
jne 0x485aba
cmp byte [ebp], 0
je 0x485b4e
lea eax, [esp + ecx + 0x1b8]
cmp ecx, 4
mov byte [eax], 0
jle 0x485b13
lea esi, [eax - 4]
push 0x52abac
push esi
call fcn.004c4c10
add esp, 8
test eax, eax
jne 0x485b13
mov edi, dword [esp + 0x7a8]
mov byte [esi], 0
mov eax, dword [edi + 0x208]
or ah, 0x40
mov dword [edi + 0x208], eax
jmp 0x485b1a
mov edi, dword [esp + 0x7a8]
push 1
push ebp
call fcn.004858c0
mov esi, eax
add esp, 8
cmp byte [esi], 0
jne 0x485b5b
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x55f8b4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x790
ret
mov byte [0x55f8b4], 0
xor eax, eax
mov cl, byte [esi]
cmp cl, 0x30
jl 0x485b7e
cmp cl, 0x39
jg 0x485b7e
mov byte [esp + eax + 0x8c], cl
inc eax
inc esi
cmp eax, 0x14
jl 0x485b64
mov byte [esp + eax + 0x8c], 0
lea eax, [esp + 0x8c]
push eax
call fcn.004be363
shl eax, 9
push 1
push esi
mov dword [edi + 0x20c], eax
call fcn.004858c0
add esp, 0xc
lea ecx, [esp + 0x20]
lea edx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x14]
push edx
push ecx
lea edx, [esp + 0x34]
lea ecx, [esp + 0x24]
push edx
push ecx
push 0x52ab98
push eax
call fcn.004bec5c
lea edx, [esp + 0x44]
push edx
call fcn.00486360
mov ebx, dword [esp + 0x7c8]
add esp, 0x20
mov dword [esp + 0x14], eax
jmp 0x48628f
cmp eax, 4
jne 0x485da7
mov esi, dword [esp + 0x7a4]
mov al, byte [esi]
test al, al
je 0x485b4e
cmp al, 0x20
je 0x485b4e
cmp al, 9
je 0x485b4e
lea eax, [esp + 0x1b8]
push eax
push 0x52ab90
push esi
call fcn.004bec5c
push edi
push esi
call fcn.004858c0
add esp, 0x14
lea ecx, [esp + 0x3b0]
mov ebp, eax
push ecx
push 0x52ab90
push ebp
call fcn.004bec5c
add esi, 9
add esp, 0xc
cmp esi, ebp
jne 0x485cd7
mov edi, 0x528990
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1b8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 1
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x1bc]
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x3b8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004858c0
add esp, 8
mov ebp, eax
lea eax, [esp + 0x3b0]
push eax
push 0x52ab90
push ebp
call fcn.004bec5c
add esp, 0xc
lea ecx, [esp + 0x3b0]
push str.Middle_button
push ecx
call fcn.004c4c10
add esp, 8
test eax, eax
jne 0x485d08
mov ebx, dword [esp + 0x7a8]
mov eax, dword [ebx + 0x208]
or ah, 0x40
mov dword [ebx + 0x208], eax
jmp 0x485d50
mov al, byte [esp + 0x3b0]
lea ecx, [esp + 0x3b0]
test al, al
lea edx, [esp + 0x5a8]
je 0x485d30
cmp al, 0x2c
je 0x485d28
mov byte [edx], al
inc edx
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x485d21
mov byte [edx], 0
lea edx, [esp + 0x5a8]
push edx
call fcn.004be363
mov ebx, dword [esp + 0x7ac]
add esp, 4
mov dword [ebx + 0x20c], eax
push 1
push ebp
call fcn.004858c0
add esp, 8
mov esi, eax
lea eax, [esp + 0x10]
lea ecx, [esp + 0x18]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
push 0x52ab84
push esi
call fcn.004bec5c
push 1
push esi
call fcn.004858c0
add esp, 0x1c
lea ecx, [esp + 0x154]
lea edx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x20]
push edx
push ecx
push 0x52ab78
push eax
call fcn.004bec5c
add esp, 0x14
jmp 0x48628f
lea edx, [esp + 0xf0]
push edx
push 0x52ab70
push ebp
call fcn.004bec5c
lea edi, [esp + 0xfc]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, 4
cmp ecx, 0xa
mov dword [esp + 0x24], ecx
je 0x485e3f
cmp ecx, 0xb
je 0x485e3f
cmp ecx, 3
jne 0x485e00
mov al, byte [esp + 0xf0]
cmp al, 0x2d
je 0x485df9
cmp al, 0x64
je 0x485df9
cmp al, 0x6c
jne 0x485e00
mov esi, 1
jmp 0x485e3f
mov al, byte [ebp]
xor edx, edx
test al, al
mov dword [esp + 0x24], edx
mov ecx, ebp
je 0x485b4e
cmp al, 0x20
je 0x485e28
cmp al, 0x30
jl 0x485e1f
cmp al, 0x39
jle 0x485e28
mov al, byte [ecx + 1]
inc edx
inc ecx
test al, al
jne 0x485e13
cmp edx, 0xa
mov dword [esp + 0x24], edx
je 0x485e3a
cmp edx, 0xb
jne 0x485b4e
mov esi, 3
push 3
push ebp
call fcn.004858c0
mov cl, byte [eax + 3]
add esp, 8
cmp cl, 0x20
jne 0x485e66
mov cx, word [eax]
mov word [esp + 0x28], cx
mov dl, byte [eax + 2]
mov byte [esp + 0x2a], dl
mov byte [esp + 0x2b], 0
lea eax, [esp + 0x28]
push eax
call fcn.00486360
add esp, 4
test eax, eax
je 0x485e83
mov esi, 2
mov byte [esp + 0x28], 0
jmp 0x485eaf
lea ecx, [esi + 1]
push ecx
push ebp
call fcn.004858c0
push eax
call fcn.004864c0
add esp, 0xc
test eax, eax
je 0x485eaf
push esi
push ebp
call fcn.004858c0
push eax
call fcn.004864c0
add esp, 0xc
test eax, eax
jne 0x485eaf
dec esi
push esi
push ebp
call fcn.004858c0
mov ebx, dword [esp + 0x7b0]
add esp, 8
mov esi, eax
lea edx, [ebx + 0x20c]
push edx
push 0x5281b4
push esi
call fcn.004bec5c
push 1
push esi
call fcn.004858c0
add esp, 0x14
mov esi, eax
xor ecx, ecx
mov al, byte [ecx + esi]
cmp al, 0x30
jl 0x485eee
cmp al, 0x39
jle 0x485ef2
cmp al, 0x2e
jne 0x485f1a
inc ecx
cmp ecx, 0xa
jl 0x485ee3
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x14]
push ecx
push edx
push 0x52ab64
push esi
call fcn.004bec5c
add esp, 0x14
jmp 0x48613c
xor ecx, ecx
mov al, byte [ecx + esi]
cmp al, 0x30
jl 0x485f27
cmp al, 0x39
jle 0x485f2b
cmp al, 0x2d
jne 0x485f53
inc ecx
cmp ecx, 0xa
jl 0x485f1c
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x14]
push ecx
push edx
push str.MouseZ
push esi
call fcn.004bec5c
add esp, 0x14
jmp 0x48613c
lea eax, [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x1c]
push ecx
push edx
push 0x52ab48
push esi
call fcn.004bec5c
add esp, 0x14
cmp eax, 3
jne 0x485f87
push 1
push esi
call fcn.004858c0
add esp, 8
mov esi, eax
jmp 0x48613c
lea eax, [esp + 0x18]
lea ecx, [esp + 0x28]
push eax
push ecx
push str.MSH_SCROLL_LINES_MSG
push esi
call fcn.004bec5c
lea edx, [esp + 0x38]
push edx
call fcn.00486360
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x485fde
lea eax, [esp + 0x28]
push eax
call fcn.004be363
add esp, 4
cmp eax, 1
jge 0x485fcd
mov dword [esp + 0x14], 1
jmp 0x485fde
lea ecx, [esp + 0x28]
push ecx
call fcn.004be363
add esp, 4
mov dword [esp + 0x14], eax
push 2
push esi
call fcn.004858c0
add esp, 8
lea edx, [esp + 0x8c]
mov esi, eax
push edx
push 0x52ab3c
push esi
call fcn.004bec5c
lea eax, [esp + 0x98]
push 0x3a
push eax
call fcn.004be1e0
add esp, 0x14
test eax, eax
je 0x486128
lea ecx, [esp + 0x20]
lea edx, [esp + 0x1c]
push ecx
push edx
lea eax, [esp + 0x94]
push 0x527e24
push eax
call fcn.004bec5c
mov edx, dword [esp + 0x7c0]
mov ecx, dword [esp + 0x24]
xor edi, edi
add esp, 0x10
mov ax, word [edx + 2]
mov di, word [edx]
cmp ax, 6
mov dword [esp + 0x10], edi
jbe 0x4860cb
cmp ecx, 6
jg 0x48613c
and eax, 0xffff
sub eax, ecx
cmp eax, 6
jle 0x486074
inc edi
mov dword [esp + 0x10], edi
jmp 0x48613c
jne 0x48613c
mov ecx, dword [esp + 0x18]
xor eax, eax
mov ax, word [edx + 6]
cmp eax, ecx
jle 0x486092
inc edi
mov dword [esp + 0x10], edi
jmp 0x48613c
jne 0x48613c
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov ax, word [edx + 8]
cmp eax, ecx
jle 0x4860b0
inc edi
mov dword [esp + 0x10], edi
jmp 0x48613c
jne 0x48613c
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov cx, word [edx + 0xa]
cmp ecx, eax
jle 0x48613c
inc edi
mov dword [esp + 0x10], edi
jmp 0x48613c
cmp ecx, 6
jle 0x48613c
and eax, 0xffff
sub ecx, eax
cmp ecx, 6
jle 0x4860e3
dec edi
mov dword [esp + 0x10], edi
jmp 0x48613c
jne 0x48613c
mov ecx, dword [esp + 0x18]
xor eax, eax
mov ax, word [edx + 6]
cmp ecx, eax
jle 0x4860fa
dec edi
mov dword [esp + 0x10], edi
jmp 0x48613c
jne 0x48613c
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov ax, word [edx + 8]
cmp ecx, eax
jle 0x486111
dec edi
mov dword [esp + 0x10], edi
jmp 0x48613c
jne 0x48613c
mov ecx, dword [esp + 0x20]
xor eax, eax
mov ax, word [edx + 0xa]
cmp ecx, eax
jle 0x48613c
dec edi
mov dword [esp + 0x10], edi
jmp 0x48613c
lea ecx, [esp + 0x8c]
push ecx
call fcn.004be363
add esp, 4
mov dword [esp + 0x10], eax
push 1
push esi
call fcn.004858c0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x1b8]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x1b8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 0x528990
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x48619d
test cl, cl
je 0x486199
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x48619d
add eax, 2
add esi, 2
test cl, cl
jne 0x486179
xor eax, eax
jmp 0x4861a2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x485b4e
mov esi, 0x528a40
lea eax, [esp + 0x1b8]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4861da
test cl, cl
je 0x4861d6
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4861da
add eax, 2
add esi, 2
test cl, cl
jne 0x4861b6
xor eax, eax
jmp 0x4861df
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x485b4e
mov al, byte [esp + 0xf0]
cmp al, 0x64
jne 0x486236
cmp dword [esp + 0x24], 3
jne 0x486225
lea edi, [esp + 0x1b8]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jle 0x486225
lea eax, [esp + ecx + 0x1b7]
mov cl, byte [esp + ecx + 0x1b7]
cmp cl, 0x2f
jne 0x486225
mov byte [eax], 0
mov eax, dword [ebx + 0x208]
or ah, 0x40
mov dword [ebx + 0x208], eax
jmp 0x48628f
cmp al, 0x6c
jne 0x48628f
mov ebp, dword [ebx + 0x208]
lea edi, [esp + 0x1b8]
or ecx, 0xffffffff
xor eax, eax
or ebp, 0xa000
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebx + 0x208], ebp
test ecx, ecx
jle 0x48628f
mov dl, 0x3e
cmp byte [esp + eax + 0x1b8], 0x20
jne 0x486280
cmp byte [esp + eax + 0x1b9], 0x2d
jne 0x486280
cmp byte [esp + eax + 0x1ba], dl
je 0x486287
inc eax
cmp eax, ecx
jl 0x486263
jmp 0x48628f
mov byte [esp + eax + 0x1b8], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x3e8
jge 0x4862ae
cmp ecx, 0x32
jg 0x4862a8
add ecx, 0x7d0
jmp 0x4862ae
add ecx, 0x76c
mov al, byte [esp + 0x154]
cmp al, 0x70
je 0x4862bd
cmp al, 0x50
jne 0x4862cb
mov eax, dword [esp + 0x1c]
cmp eax, 0xc
jge 0x4862cf
add eax, 0xc
jmp 0x4862cf
mov eax, dword [esp + 0x1c]
mov word [ebx + 0x210], cx
mov cx, word [esp + 0x14]
mov word [ebx + 0x218], ax
mov ax, word [esp + 0x20]
mov word [ebx + 0x212], cx
mov word [ebx + 0x21a], ax
lea edi, [esp + 0x1b8]
or ecx, 0xffffffff
xor eax, eax
mov dx, word [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov word [ebx + 0x216], dx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [ebx + 0x220]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0xf0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x790
ret