Function at 0x4230d8
Capabilities:
Get disk information

Disassembly:
add al, byte [eax]
add al, byte [eax]
add byte ss:[eax + 0xb00431a], bh
inc edi
je 0x422ac8
jb 0x422adf
popal
insd dword es:[edi], dx
bound ebp, qword [ebp + 3]
add al, ch
inc esi
inc eax
add byte [eax], cl
add byte [edx], al
or byte [edx + ebp + 0x42], ah
add al, 0x53
insb byte es:[edi], dx
add al, byte [eax]
inc eax
call 0x1426ae2
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [eax], al
test al, 0x2a
inc edx
add byte [edi], al
sbb dword [edx + eax*2 + 0x69], edx
inc ebp
outsb dx, byte [esi]
imul esp, dword fs:[ecx + 0x6e], 0x63696e55
outsd dx, dword [esi]
inc ebp
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x4229ec
pop esp
sub dword [edx], eax
add byte [eax], al
rcpps xmm7, xmmword [ecx + 0x73]
je 0x422b38
insd dword es:[edi], dx
push ebx
jns 0x422b4b
push ebp
je 0x422b44
insb byte es:[edi], dx
jae 0x422ade
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
in al, dx
add byte [eax], al
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add ah, ch
sub al, byte [edx]
adc al, 0x17
push esp
dec ebp
popal
jb 0x422b66
push 0x656c6c61
jb 0x422b28
push eax
inc esp
imul esi, dword [ebx + 0x70], 0x5265736f
arpl word gs:[ebx + ebp + 0x42], ax
add byte [edx], al
add byte [eax], al
adc byte [ebx], ch
inc edx
add byte [0x614d5418], dl
jb 0x422b8a
push 0x656c6c61
jb 0x422b4c
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x5065736f
jb 0x422b98
outsd dx, dword [esi]
arpl word [eax], si
sub eax, dword [edx]
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
call 0x4426d67
inc ecx
jb 0x422ba7
jae 0x422b44
add byte [eax], al
dec eax
sub eax, dword [edx]
push cs
pop ss
push esp
dec ebp
popal
jb 0x422bc2
push 0x656c6c61
jb 0x422b84
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x5265736f
arpl word gs:[eax], dx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, 0
add byte [eax], al
or al, 0x2b
inc edx
add byte [eax], al
add byte [eax], al
add byte [edx], al
add al, 0x50
jb 0x422bea
arpl word [edx], ax
add byte [edi + ebx + 0x40040], dh
add byte [eax], al
add al, byte [ebx]
dec edi
bound ebp, qword [edx + 2]
push 2
add byte [ecx + edx + 0x40], dl
add byte [eax], cl
add byte [eax], al
add byte [edx], al
add al, 0x41
jb 0x422c01
xor dword [edx], eax
add byte [ecx + edx + 0x40], dl
add byte [eax + eax], cl
add byte [eax], al
add al, byte [ecx + eax*2]
inc ecx
jb 0x422c11
xor al, byte [edx]
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov eax, 0xf00422b
adc eax, 0x72614d54
jae 0x422c28
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x422bf4
dec ecx
inc esp
imul esi, dword [ebx + 0x70], 0x7265736f
fsub qword [edx]
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
rcpps xmm7, xmmword [ecx + 0x73]
je 0x422c4f
insd dword es:[edi], dx
push ebx
jns 0x422c62
push ebp
je 0x422c5b
insb byte es:[edi], dx
jae 0x422bf8
add eax, dword [eax]
invalid
add bh, bh
inc dword [edx]
add byte [eax], al
add ah, cl
add eax, 0xffffffac
jmp 0x43224c
add al, byte [eax]
add byte [eax], al
int3
inc edi
test byte [eax], 0
add eax, 0xffffffac
jmp 0x4323f0
sub esi, edi
add byte [eax], al
add dword [esp + 4], 0xffffffac
jmp fcn.0040d5fc
inc dword [ebx - 0x53fbdbbc]
jmp fcn.0040d640
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esp + ebp], dh
inc edx
add byte [eax + eax], dl
add byte [eax], al
add byte [eax], al
add byte [ebx + ebp + 0x2cc80042], dh
inc edx
add byte [esp + ebp + 0x42], cl
add byte [eax], al
add byte [eax], al
add al, cl
sub al, 0x42
add byte [ebp + ebp + 0x42], ch
add dl, bl
sub al, 0x42
add byte [ebp + 0x42], bl
add byte [eax], al
sub ch, byte [0x5c0042]
add byte [eax], al
enter 0x4023, 0
clc
jp 0x422cdf
add byte [eax], al
jnp 0x422ce3
add byte [eax + 0x7e], cl
inc eax
add byte [eax + 0x7e], al
inc eax
add ah, cl
aad 0x40
add al, bl
aad 0x40
add byte [eax + 0x7e], ch
inc eax
add byte [esi + edi*2 + 0x40], bl
add ah, ch
aad 0x40
add byte [eax + edi*2 + 0x23140040], ch
inc ebx
add byte [esi], cl
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add ah, dl
xor byte [edx], al
dec esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
or al, 0
add byte [eax], al
pop es
inc esi
dec ecx
outsb dx, byte [esi]
insb byte es:[edi], dx
imul ebp, dword [esi + 0x65], 0xd4000002
xor byte [edx], al
dec esp
add byte [eax], al
add byte [ecx], cl
inc esi
dec edi
jbe 0x422d68
jb 0x422d6b
insb byte es:[edi], dx
outsd dx, dword [esi]
ja 0x422d0b
add byte [eax], al
pushfd
adc byte [eax], al
push eax
add byte [eax], al
add byte [esi], al
inc esi
inc ebx
outsd dx, dword [esi]
jne 0x422d87
je 0x422d1d
add byte [eax], al
add byte [ecx], al
add byte [eax + 0x2d], al
inc edx
add byte [ebp], cl
invalid
insb byte es:[edi], dx
sub eax, 0x15070042
push esp
dec ebp
popal
jb 0x422de6
add byte [edi], al
adc eax, 0x72614d54
jae 0x422ddc
push 0x656c6c61
jb 0x422da8
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x422da8
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x7265736f
enter 0x422c, 0
add al, 0x25
inc eax
add byte [eax], al
add byte [edi], cl
push ebx
jns 0x422e04
je 0x422df8
insd dword es:[edi], dx
push ebx
jns 0x422e0b
push ebp
je 0x422e04
insb byte es:[edi], dx
jae 0x422d9e
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
lodsb al, byte [esi]
sub eax, 0xb0e0042
push esp
dec ebp
popal
jb 0x422e26
push 0x656c6c61
jb 0x422dbe
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebx + ebp + 0x42], dh
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebx + ebp + 0x42], dh
add byte [eax], al
add byte [ecx], cl
inc esi
inc esp
imul esi, dword [ebx + 0x70], 0x7265736f
add al, byte [eax]
add al, byte [eax]
adc eax, dword [eax]
or byte [eax + 0x8004320], bh
jo 0x422e4d
jae 0x422e45
jb 0x422de4
add byte [edx], al
add byte [ebx], dl
add byte [eax], cl
mov eax, 0x8004320
dec ecx
outsb dx, byte [esi]
push ebx
je 0x422e64
imul ebp, dword [esi + 0x67], 0x2d240000
inc eax
add byte [edx], al
or byte [eax], dh
push cs
sub eax, 0x8020040
xor byte [esi], cl
inc edx
add byte [edx], al
push ebx
inc edx
add al, byte [eax]
add byte [eax + edx + 0x4d060040], bl
push es
dec ebp
popal
js 0x422e5c
outsb dx, byte gs:[esi]
add al, byte [eax]
add al, byte [eax]
or byte [eax], al
and dword [ebx], eax
or dword [edi + 0x75], ecx
je 0x422e73
je 0x422e94
imul ebp, dword [esi + 0x67], 0x2d240000
inc eax
add byte [ecx], al
add bh, byte [eax + 0x1004012]
add byte [ebp + 0x2010040], ah
mov eax, 0x1004012
push ebx
add al, byte [eax]
add al, byte [eax]
or al, bh
pop ds
inc ebx
add byte [ebx], cl
dec ecx
outsb dx, byte [esi]
dec edi
jne 0x422eb6
push ebx
je 0x422eb7
imul ebp, dword [esi + 0x67], 0x2d240000
inc eax
add byte [edx], al
or byte [eax], dh
push cs
inc edx
add byte [edx], al
push ebx
inc edx
add al, byte [eax]
add byte [eax + edx + 0x4d060040], bl
inc eax
add byte [esi], al
dec ebp
popal
js 0x422eaf
outsb dx, byte gs:[esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x1f], al
inc ebx
add byte [esi], al
inc ecx
jae 0x422eb3
outsb dx, byte [esi]
jae 0x422ede
add byte [eax], al
and al, 0x2d
inc eax
add byte [ecx], al
add bh, byte [eax + 0x1004012]
push ebx
add al, byte [eax]
add al, byte [eax]
or al, ch
push ds
inc ebx
add byte [esi], al
inc ecx
jae 0x422ed1
outsb dx, byte [esi]
jae 0x422efc
add byte [eax], al
and al, 0x2d
inc eax
add byte [ecx], al
add byte [eax], dl
adc al, byte [eax]
add dword [ebx + 2], edx
add byte [edx], al
add byte [eax], cl
dec eax
push ds
add byte [ebp + 0x10040], ah
adc byte [edx], dl
inc eax
add byte [ecx], al
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x1e], cl
inc ebx
add byte [esi], al
inc ecx
jae 0x422eef
outsb dx, byte [esi]
jae 0x422f1a
add byte [eax], al
and al, 0x2d
inc eax
add byte [edx], al
add bh, byte [eax + 0x1004012]
add al, byte [edx]
mov eax, 0x1004012
push ebx
add al, byte [eax]
add ah, cl
adc byte [eax], al
or byte [ebx + 0x6f], al
push eax
popal
add al, byte gs:[bx + si]
add al, byte [eax]
or byte [eax + 0x600431e], ch
inc ecx
jae 0x422f1d
outsb dx, byte [esi]
jae 0x422f48
imul eax, dword [eax], 0x402d2400
add byte [eax], al
and al, 0x2d
inc eax
add byte [edx], al
add byte [eax], dl
adc al, byte [eax]
add dword [ebx + 2], edx
add byte [eax], al
int3
add ah, cl
adc byte [eax], al
or byte [ebx + 0x6f], al
push eax
popal
add al, byte gs:[bx + si]
add al, byte gs:[eax]
add al, byte [eax]
or byte [eax + 0x600431e], cl
inc ecx
jae 0x422f5f
je 0x422f72
cmp byte [eax], al
add byte [ebp + 0x2010040], ah
mov eax, 0x1004012
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [eax], ah
pop ds
inc ebx
add byte [esi], al
inc ecx
jae 0x422f7d
je 0x422f90
cmp byte [eax], al
add byte [ebp + 0x10040], ah
adc byte [edx], dl
inc eax
add byte [ecx], al
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [ecx + 0x43], dh
add byte [0x61527341], al
ja 0x422f49
add byte [eax], al
and al, 0x2d
inc eax
add byte [ecx], al
add ch, al
inc esi
inc eax
add byte [ecx], al
add byte [ebp + 0x2010040], ah
call 0x1426f9b
inc edx
add al, byte [eax]
add al, byte [eax]
or al, ch
pop ds
inc ebx
add byte [0x73756c46], al
add eax, 0x73756c46
push 0
add byte [eax], al
add byte [edx], al
add byte [eax], cl
inc eax
sbb eax, 0x41080043
add byte [eax], cl
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebp + 0x65], cx
insd dword es:[edi], dx
add byte [eax], al
and al, 0x2d
inc eax
add byte [ecx], al
add byte [ecx + edx + 0x40], dl
add byte [ebx + edx*2], al
add byte [ebp + 0x10040], ah
push esp
adc dword [eax], eax
add al, 0x53
imul edi, dword [edx + 0x65], 0x20002
or ah, bl
and dword [ebx], eax
or dl, byte [edx + 0x65]
popal
add byte [eax], cl
fsub qword [ecx]
inc ebx
add byte [edx], cl
push edx
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebp + 0x65], cx
insd dword es:[edi], dx
add byte [eax], al
and al, 0x2d
inc eax
add byte [edx], al
add byte [ebp + 0x4f060040], ah
insb byte es:[edi], dx
push eax
je 0x423026
add al, byte [eax]
add byte [ecx + edx + 0x40], dl
add byte [edi], al
dec esi
ja 0x423013
imul edi, dword [edx + 0x65], 0x20002
or byte [eax + 0x1f], bh
inc ebx
add byte [ecx], cl
inc esi
imul edi, dword [eax + 0x53], 0x6e697274
add byte [bx + si], al
and al, 0x2d
inc eax
add byte [ecx], al
add dword [eax + 0x3004012], edi
push ebx
je 0x423058
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0xf00431f], dh
push ebp
outsb dx, byte [esi]
jae 0x423055
inc si
imul edi, dword [eax + 0x53], 0x6e697274
add byte [bx + si], al
and al, 0x2d
inc eax
add byte [ecx], al
add bh, byte [eax + 0x3004012]
push ebx
je 0x423081
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x1d], bh
inc ebx
add byte [ecx], dl
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x42308b
outsb dx, byte [esi]
inc ecx
jae 0x423068
inc ecx
outsb dx, byte [esi]
jae 0x423093
add byte [eax], al
and al, 0x2d
inc eax
add byte [ecx], al
add bh, byte [eax + 0x3004012]
push ebx
je 0x4230ac
add al, byte [eax]
add al, byte [eax]
or al, dl
sbb eax, 0x41110043
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x4230b6
outsb dx, byte [esi]
inc ecx
jae 0x423093
outsb dx, byte [esi]
jae 0x4230be
add byte [eax], al
and al, 0x2d
inc eax
add byte [edx], al
add bh, byte [eax + 0x3004012]
sub eax, 0x2020040
mov eax, 0x3004012
push ebx
je 0x4230d7
add al, byte [eax]
add ah, cl
adc byte [eax], al
or byte [ebx + 0x6f], al
push eax
popal
add al, byte gs:[bx + si]
add al, byte [eax]
or byte [eax + 0x1100431d], dh
inc ecx
insb byte es:[edi], dx
int3
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x4230f1
outsb dx, byte [esi]
inc ecx
jae 0x4230e2
je 0x4230f5
cmp byte [eax], al
add byte [ebp + 0x2010040], ah
sub eax, 0x2010040
mov eax, 0x3004012
push ebx
je 0x423112
add al, byte [eax]
add al, byte [eax]
or byte [eax], dl
push ds
inc ebx
add byte [ecx + eax*2], dl
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x42311c
outsb dx, byte [esi]
inc ecx
jae 0x42310d
outsb dx, byte [esi]
imul esp, dword [ebx + 0x6f], 0x6564
add byte [eax], al
and al, 0x2d
inc eax
add byte [ecx], al
add bh, byte [eax + 0x3004012]
push ebx
je 0x423140
add al, byte [eax]
add al, byte [eax]
add byte [eax], al
fdiv dword [eax]
inc edx
add byte [ecx], dl
das
push esp
inc ecx
jb 0x423150
popal
jns 0x42311d
push ebx
jns 0x423157
je 0x42314b
insd dword es:[edi], dx
push ebx
jns 0x42315e
push ebp
je 0x423157
insb byte es:[edi], dx
jae 0x42311f
push esp
dec ebp
popal
jb 0x423169
jae 0x42315f
push 0x656c6c61
jb 0x42312b
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x42312b
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x5265736f
arpl word gs:[esi], di
adc byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
invalid
jae 0x423192
je fcn.00423184
insd dword es:[edi], dx
insd dword es:[edi], dx
inc esp
sub eax, dword [edx]
add al, byte [eax]
add byte [eax], al
sub al, 0x31
inc edx
add byte [edi], cl
add eax, 0x6f725054
arpl sp, bx
and al, byte [eax]
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
rcpps xmm7, xmmword [ecx + 0x73]
je 0x4231b3
jae 0x4231c1
insd dword es:[edi], dx
insd dword es:[edi], dx
push ebx
push ebx
jns 0x4231c6
push ebp
je 0x4231bf
insb byte es:[edi], dx
jae 0x42315a
add bh, bh
inc dword [edx]
add byte [ebx + 0x3005ffc0], cl
mov esi, 0x90c30066
invalid
mov eax, eax
inc dword [0x66be30]
ret
sar bh, 5
xor byte [esi - 0x6f3cff9a], bh
js 0x423194
add al, ch
ficomp dword [ebp - 2]
call [ebx - 0x3d]
sti
invalid
add byte [edi + edi*8 + 0x30], ah
push ebx
push esi
push edi
add esp, 0xffffffe4
mov esi, edx
lea edi, [esp + 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, eax
mov eax, dword [ebx + 0x50]
cmp eax, 4
jge 0x432279
add eax, eax
lea edi, [ebx + eax*8 + 0xc]
lea esi, [esp + 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x432308
mov esi, eax
sub esi, 4
mov eax, dword [ebx + 0x4c]
mov dword [esp], eax
mov eax, dword [esp]
test eax, eax
je 0x432290
sub eax, 4
mov eax, dword [eax]
cmp eax, esi
jne 0x4322f6
mov eax, dword [ebx + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
test eax, eax
je 0x4322a8
sub eax, 4
mov eax, dword [eax]
cmp eax, 4
jge 0x4322c7
push 4
lea eax, [ebx + 0x4c]
mov ecx, 1
mov edx, dword [0x4230d4]
call fcn.0040bc60
add esp, 4
jmp 0x4322f6
mov eax, dword [ebx + 0x4c]
mov dword [esp + 8], eax
mov edi, dword [esp + 8]
test edi, edi
je 0x4322db
sub edi, 4
mov edi, dword [edi]
mov eax, edi
add eax, eax
push eax
lea eax, [ebx + 0x4c]
mov ecx, 1
mov edx, dword [0x4230d4]
call fcn.0040bc60
add esp, 4
mov eax, esi
add eax, eax
mov edx, dword [ebx + 0x4c]
lea edi, [edx + eax*8]
lea esi, [esp + 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc dword [ebx + 0x50]
add esp, 0x1c
pop edi
pop esi
pop ebx
ret
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe0
mov esi, edx
lea edi, [esp]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
mov eax, dword [esi + 0x50]
cmp eax, 4
jg 0x43244a
mov edi, eax
dec edi
test edi, edi
jl 0x4324be
inc edi
xor ebx, ebx
mov edx, esp
mov ebp, ebx
add ebp, ebp
lea eax, [esi + ebp*8 + 0xc]
call fcn.004323cc
test al, al
je 0x432444
lea eax, [esp + 0x10]
call fcn.004323c0
push esi
push edi
lea edi, [esi + ebp*8 + 0xc]
lea esi, [esp + 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
inc ebx
dec edi
jne 0x432418
jmp 0x4324be
xor ebx, ebx
mov edx, esp
mov edi, ebx
add edi, edi
lea eax, [esi + edi*8 + 0xc]
call fcn.004323cc
test al, al
je 0x432476
lea eax, [esp + 0x10]
call fcn.004323c0
push esi
lea edi, [esi + edi*8 + 0xc]
lea esi, [esp + 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
inc ebx
cmp ebx, 4
jne 0x43244c
mov edi, dword [esi + 0x50]
sub edi, 4
dec edi
test edi, edi
jl 0x4324be
inc edi
xor ebx, ebx
mov ebp, ebx
add ebp, ebp
mov eax, dword [esi + 0x4c]
lea eax, [eax + ebp*8]
mov edx, esp
call fcn.004323cc
test al, al
je 0x4324ba
lea eax, [esp + 0x10]
call fcn.004323c0
mov eax, dword [esi + 0x4c]
push esi
push edi
lea esi, [esp + 0x18]
lea edi, [eax + ebp*8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
inc ebx
dec edi
jne 0x43248a
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
ret