Function at 0x655fe1
Capabilities:
Parse pe header

Disassembly:
inc dword [eax + 0x52b00c]
pushfd
call 0x650f4c
push dword [esp]
mov dword [esp + 3], ebp
pop dword [esp + 2]
mov byte [esp + 3], bl
jmp 0x650fbb
pushfd
mov word [esp + 3], dx
add esp, 0x24
push dword [esp + 2]
sub esp, 0xd
jmp 0x650fd9
mov word [esp + 4], ax
add esp, 4
std
pushfd
lea esp, [esp + 4]
sub esp, 0x1f
jmp 0x650fa5
push eax
jmp 0x651010
push dword [esp + 0xd]
push bx
std
pushfd
push dword [esp + 0x11]
lea esp, [esp + 0x12]
jmp 0x651f52
call 0x651015
jmp 0x651cba
push word [esp + 5]
lea esp, [esp + 0x41]
call fcn.00651005
lea esp, [esp + 1]
add esp, 0xc
push word [esp + 4]
push word [esp + 5]
cmc
mov byte [esp + 6], dl
jmp 0x651070
lea esp, [esp + 8]
lea esp, [esp]
call 0x65105a
cld
push ebp
sub esp, 0x15
pop word [esp + 0xc]
cmc
pop word [esp + 8]
jmp 0x6510bf
add esp, 0xb
call 0x6510a9
add esp, 0x11
pop word [esp + 9]
std
add esp, 0x14
sub esp, 0xe
add esp, 9
call 0x6510ee
inc edi
je 0x651126
inc ebx
add byte [eax - 0xe2dbb4], cl
mov byte [esp + 0x1d], cl
invalid
je 0x65110f
and ebp, ebx
fldl2t
jns 0x6510f2
add byte [eax], al
pop word [esp + 0x17]
add byte [esi - 0x71], ah
inc esp
and al, 0x17
mov byte [esp + 0x17], bh
add esp, 0x15
push dword [esp]
push dword [esp + 5]
lea esp, [esp + 0xf]
jmp 0x65122f
lds esi, [edi - 0x72]
sbb dword [esi - 1], esp
je 0x65113c
push word [esp + 6]
push es
sub esp, 0x1f
pop word [esp + 0x2e]
push di
push dword [esp + 0x33]
clc
xor edi, eax
jmp 0x65101d
push dword [esp + 0xc]
add esp, 0
call fcn.00651170
inc edi
je 0x651180
inc ebx
push eax
dec ecx
outsb dx, byte [esi]
outsw dx, word [esi]
add byte [esi - 0x71], ah
inc esp
and al, 0xc
push word [esp + 0x12]
std
lea esp, [esp + 0xe]
push word [esp + 6]
clc
jmp 0x65112d
and al, 0xd
sub esp, 0xc
pop word [esp + 8]
std
push dword [esp + 0xd]
pop word [esp + 0x12]
call fcn.006511fa
push edi
push ebx
xor bl, byte [edi + 0x33]
xor ch, byte [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [ebx - 0x6514e914], al
mov word [esp + 0x14], ax
call 0x6511df
ja 0x651216
jbe 0x65121c
dec edi
jne 0x65122e
dec edi
jo 0x651222
outsb dx, byte [esi]
add byte [esi - 0x77], ah
insb byte es:[edi], dx
and al, 0x15
call 0x6511a9
stc
pop word [esp + 0xb]
mov word [esp + 5], bx
pop dword [esp + 3]
call fcn.00651212
mov esp, 0x2474898f
add cl, byte [ebp + 0x66282464]
mov dword [esp], ebx
sub esp, 0x1f
jmp 0x6511c9
push ecx
sub esp, 2
mov byte [esp + 0x1b], dh
pop word [esp + 0x17]
jmp 0x651253
adc byte [esi - 1], ah
je 0x65123f
adc ebp, ebx
fisubr word [ebp + 0x69]
imul edx, dword fs:[ebx + 0x74], 0x6d616572
jmp 0x6511fc
push ebx
je 0x651297
popal
insd dword es:[edi], dx
dec edi
jne 0x65129f
add byte [eax + 3], al
mov edx, 0x88241c88
and al, 0x24
mov byte [esp], bl
mov byte [esp], ah
clc
stc
cld
call 0x6511a4
mov word [esp + 0x1e], dx
push esp
and al, 0x1e
std
lea esp, [esp + 8]
mov byte [esp + 5], cl
cld
stc
jmp 0x651289
mov byte [esp + 7], cl
mov dword [esp + 7], ebx
cmc
stc
pop word [esp + 8]
jmp 0x65123d
push eax
pop dword [esp + 0xe]
push word [esp + 2]
lea esp, [esp + 5]
sub esp, 4
mov dword [esp + 0xb], esp
jmp 0x651c11
outsb dx, byte [esi]
or dword [eax], eax
add cl, ch
or byte [ebx + 0x2474ffc2], ch
add bh, bh
je 0x6512d2
push dword [esp + 2]
push dword [esp + 6]
push es
std
push di
mov byte [esp + 0xe], bl
mov dword [esp + 0x10], edi
jmp 0x651114
pop dword [esp + 2]
std
jmp 0x651349
lea esp, [esp + 0x29]
sub esp, 0xa
push esp
push word [esp + 0x11]
add esp, 7
add esp, 0x10
jmp 0x651329
pop word [esp + 0xd]
pop dword [esp + 0x18]
clc
pop word [esp + 0x1f]
pop dword [esp + 4]
mov dword [esp + 0xa], ebp
jmp 0x6512f3
lea esp, [esp]
pushfd
lea esp, [esp]
std
push dword [esp]
pop word [esp + 5]
jmp 0x651359
mov byte [esp + 5], dh
push eax
add esp, 2
push dword [esp + 0x15]
clc
pushal
jmp 0x651310
sub esp, 0x1e
pop word [esp + 0x14]
pop dword [esp + 2]
lea esp, [esp + 0x12]
mov byte [esp + 0xb], dl
cld
jmp 0x6516ab
pop dword [esp]
mov dword [esp + 4], edi
mov byte [esp + 8], al
call fcn.0065166a
push word [esp + 2]
mov dword [esp], ebp
pushal
call fcn.0065170a
push ebx
je 0x65171f
arpl word gs:[eax + eax - 0x71], si
add al, 0x24
push word [esp + 2]
push dword [esp + 5]
mov byte [esp], ch
push word [esp + 9]
pop word [esp + 3]
jmp 0x6516bb
les eax, [eax]
push word [esp]
clc
call fcn.00651800
inc edi
insb byte es:[edi], dx
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
inc esi
insb byte es:[edi], dx
popal
jae fcn.00651737
clc
call 0x65137f
pop dword [esp + 4]
pop word [esp + 0x25]
clc
lea esp, [esp + 0xc]
mov word [esp + 4], bx
push dword [esp + 0x1d]
jmp 0x6518e5
sub esp, 0x1a
lea esp, [esp + 0x44]
push edi
pushal
add esp, 0x22
call fcn.006518cf
push dword [esp + 0x24]
lea esp, [esp + 0x43]
sub esp, 0x13
mov dword [esp + 9], ecx
clc
jmp 0x651947
pop dword [esp + 0x19]
sub esp, 0x1c
lea esp, [esp + 0x4b]
clc
sub esp, 0x11
jmp 0x65195e
sub esp, 0x1e
std
mov byte [esp + 0x2f], dh
mov byte [esp + 0x20], cl
mov dword [esp + 0x28], edi
push word [esp + 0x25]
jmp 0x651931
mov dword [esp + 0xa], edi
push esp
mov byte [esp + 6], al
mov byte [esp], cl
lea esp, [esp]
lea esp, [esp + 6]
jmp 0x65199d
mov word [esp + 8], dx
mov dword [esp + 4], esp
sub esp, 0x19
clc
cmc
add esp, 7
call fcn.00651987
push ebx
je 0x6519fc
jb 0x651a2b
outsd dx, dword [esi]
jb 0x651a09
outsd dx, dword [esi]
add byte gs:[edi + 0x5489f8fe], dl
and al, 0xc
sub esp, 0x19
call fcn.00651982
pop word [esp + 0x13]
push sp
std
push dword [esp + 6]
mov byte [esp + 8], dh
jmp 0x651a3b
pop word [esp + 1]
stc
call 0x651a1f
inc edi
je 0x651a46
jb 0x651a67
arpl word [ebp + 0x73], sp
jae 0x651a53
push esi
jb 0x651a73
imul ebp, dword [edi + 0x6e], reloc.WINMM.dll_midiStreamOut
jmp 0x6519e7
lea esp, [esp + 0xd]
mov byte [esp], bh
mov byte [esp], cl
stc
lea esp, [esp]
clc
call 0x651a4e
mov edi, 0x2474ff86
add eax, dword [ebx - reloc.WINMM.dll_midiStreamOut]
and al, 1
clc
jmp 0x651a09
std
lea esp, [esp + 0x1e]
pop word [esp]
cld
mov word [esp], bp
mov dword [esp], ebp
call 0x651a06
jmp 0x651aa1
mov byte [esp + 2], dl
pop word [esp + 3]
add ah, byte [esi - 0x71]
inc esp
and al, 3
call 0x651a8b
inc edi
je 0x651aa5
jne 0x651ad6
jb 0x651acb
outsb dx, byte [esi]
je 0x651abd
push 0x64616572
add byte [eax], dh
clc
mov dword [esp + 0x12], esi
and al, 0x12
push dword [esp + 0xb]
mov dword [esp + 0x22], ebp
lea esp, [esp + 0x11]
push word [esp + 0xb]
call fcn.006519e5
push dword [esp]
mov byte [esp + 6], bl
pushal
sub esp, 0xc
jmp 0x651af9
add esp, 1
push dword [esp + 1]
mov byte [esp + 5], bl
push word [esp + 5]
je 0x651acb
add dword [eax + reloc.WINMM.dll_midiStreamOut], ecx
push dword [esp + 5]
pop word [esp + 4]
mov word [esp + 1], di
jmp 0x651a50
lea esp, [esp + 1]
mov word [esp], sp
push edx
mov byte [esp + 3], dl
push sp
push esp
jmp 0x651b21
push word [esp]
push word [esp]
and al, 0x66
push dword [esp]
stc
lea esp, [esp + 3]
mov byte [esp + 1], bl
add esp, 0
jmp 0x651abd
pushfd
mov dword [esp + 0x2b], ebx
push dword [esp + 0x1a]
lea esp, [esp + 0x42]
std
push ax
jmp 0x651ad3
sub esp, 0xa
std
push edx
pop dword [esp]
lea esp, [esp + 0x17]
add esp, 0
call fcn.00651b84
xor ch, byte [0x66fc5566]
pop dword [esp + 2]
push bp
cld
pop word [esp + 2]
mov word [esp + 5], sp
lea esp, [esp + 7]
sub esp, 0xd
jmp 0x651b0b
mov dword [esp + 0x12], ebp
cmc
mov word [esp + 0xa], di
std
pop word [esp + 0x11]
cld
jmp 0x6518a5
je 0x650f81
jne 0x651cdf
push ebx
je 0x651cf5
outsb dx, byte [esi]
dec edi
inc si
imul ebp, dword [ebp], reloc.WINMM.dll_midiStreamOut
adc byte [ebp], ah
pop eax
sub eax, 0x651015
cmp dword [eax + reloc.WINMM.dll_midiStreamOut], 0
jmp 0x651ca4
lea esp, [esp + 8]
popal
jmp loc.004101f6
outsb dx, byte [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x46], bp
imul ebp, dword [ebp], reloc.WINMM.dll_midiStreamOut
mov ax, 0x285d
mov ax, 0xc580
lea eax, [eax + esi]
call fcn.00651ce9
dec esp
outsd dx, dword [esi]
arpl word [ecx + 0x6c], sp
inc esi
jb 0x651d7c
add byte gs:[edi], dh
push ds
imul ecx, dword [eax - reloc.WINMM.dll_midiStreamOut], 0x3d5325bb
mov dword [esp], eax
mov eax, 0x3d5325bb
lea eax, reloc.WINMM.dll_midiStreamOut
not ax
lea eax, [ebx*4]
setl al
jmp 0x651cff
add byte [edi + 0x6c], al
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
inc edi
je 0x651dc8
je 0x651df8
insd dword es:[edi], dx
dec esi
popal
insd dword es:[edi], dx
inc ecx
add byte [ebp + ecx*4 + 0x648d2424], bl
pushfd
lea esp, [esp]
lea esp, [esp + 5]
pushfd
lea esp, [esp + 3]
jmp 0x651d1d
lea esp, [esp]
mov eax, edx
mov eax, dword [esp]
call 0x651e18
insb byte es:[edi], dx
jae 0x651e26
jb 0x651e17
popal
je 0x651df8
add byte [edx + 0x48b66e0], cl
and al, 0xf
enter 0xffffffffffffb866, 0xffffffffffffffb5
xlatb
mov ax, 0xb036
jmp 0x651da2
lea eax, [ebx*4]
push dword [esp]
push word [esp + 3]
jmp 0x651e24
sub esp, ebp
adc al, 0x87
cmp dword cs:[esi - 0x48], edx
adc dword [esi + reloc.WINMM.dll_midiStreamOut], edi
add byte [eax], al
add byte [esi + 0x58], ah
push esp
mov ax, 0xbe11
lea eax, [edi*4]
pop ax
xchg byte [esp], ah
jmp 0x651de8
add byte [ebx - 0x72fedbbc], cl
and al, 3
mov al, 0xdf
jmp 0x651dfe
mov ax, 0xb745
mov ax, word [esp]
inc ebp
mov bh, 0x66
mov eax, dword [esp]
mov ax, word [esp + 8]
pop word [esp + 4]
mov eax, dword [esp + 2]
mov byte [esp + 6], dl
jmp 0x651e5e
lea eax, [edx*4]
pop dword [esp]
mov word [esp + 1], dx
mov ah, cl
jmp 0x651edb
lea eax, [ebp*4]
pop eax
jmp 0x651ec1
mov eax, edx
lea eax, reloc.WINMM.dll_midiStreamOut
mov al, bh
not eax
mov al, byte [esp]
lea eax, reloc.WINMM.dll_midiStreamOut
jmp 0x651e93
push 0
call fcn.00651f0a
inc edi
insb byte es:[edi], dx
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
inc esi
imul ebp, dword [esi + 0x64], 0x6d6f7441
inc ecx
add byte [ebp - 0x7099285c], dh
add al, 0x24
pop word [esp]
mov byte [esp], ah
push word [esp + 1]
pop ax
mov eax, 0x3ddbd792
lea esp, [esp + 2]
jmp 0x651ea9
std
pushal
pop word [esp + 7]
pushal
lea esp, [esp + 0x4f]
sub esp, 0x10
jmp 0x6512a7
call 0x65501c
jmp 0x65602c
movzx ebx, word [eax + 0x3c]
jmp 0x656016
mov dword [esp + 4], edx
call fcn.00655f87
push bx
mov word [esp + 1], si
lea esp, [esp + 4]
push sp
call 0x655fe3
xlatb
or dword ds:[eax + reloc.WINMM.dll_midiStreamOut], ebp
and al, 0x10
pushal
jmp 0x655fee
push eax
mov dword [esp + 0x30], esi
push esp
mov dword [esp + 0x30], edi
lea esp, [esp + 0x30]
jmp 0x656105
add ebx, eax
jmp 0x656099
pop eax
xor ax, ax
cmp word [eax], 0x5a4d
je 0x655056
sub eax, 0x10000
jmp 0x656030
je 0x650fd2
jne 0x65603b
push ecx
rcl dword [ecx + 0x30], 0xc3
and edx, edx
inc edi
xlatb
mov dl, 0x41
cmpsb byte [esi], byte es:[edi]
push 0xf8096ef8
pop edi
inc esi
aad 0x45
sub al, 0xdf
sub al, 0xd0
inc esi
aam 0xb3
dec esi
sti
invalid
cmp word [ebx], 0x4550
jmp 0x656058
mov eax, dword [eax]
mov eax, dword [eax + 8]
push eax
jmp 0x655017
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x1c]
jmp 0x6560d9